Skip to content

feat: add OpenAPI 3.1 spec and MCP server binary#225

Open
ZPascal wants to merge 8 commits into
feature/dns-api-extendedfrom
feature/ai-agent-support
Open

feat: add OpenAPI 3.1 spec and MCP server binary#225
ZPascal wants to merge 8 commits into
feature/dns-api-extendedfrom
feature/ai-agent-support

Conversation

@ZPascal
Copy link
Copy Markdown
Owner

@ZPascal ZPascal commented May 31, 2026

Summary

  • Static OpenAPI 3.1 spec embedded in binary, served at GET /openapi.json (no auth required)
  • Documents all endpoints: POST /register, POST /update, GET /health, and the admin record CRUD endpoints
  • New cmd/acme-dns-mcp/ binary: stdio-based MCP server wrapping the acme-dns HTTP API as structured tools
  • MCP tools: register_subdomain, update_txt_record, list_dns_records, create_dns_record, update_dns_record, delete_dns_record, health_check
  • Config loaded from ~/.acme-dns-mcp/config.toml or env vars (ACMEDNS_BASE_URL, ACMEDNS_ADMIN_TOKEN, etc.)
  • Credentials never passed as tool arguments — config only
  • .goreleaser.yml updated to build and publish acme-dns-mcp alongside acme-dns

Test Plan

  • go test -race ./... passes
  • go build ./... builds cleanly
  • GET /openapi.json returns valid OpenAPI 3.1 JSON
  • MCP health_check tool returns {"status":"ok"} against a running instance
  • MCP list_dns_records returns {"records":[...]} with admin token configured
  • Missing credentials return {"error":"admin_token not configured"}

@ZPascal ZPascal force-pushed the feature/ai-agent-support branch from 6d4dca2 to ef87060 Compare May 31, 2026 20:18
@ZPascal ZPascal force-pushed the feature/dns-api-extended branch from e929f6d to c941f89 Compare May 31, 2026 20:45
@ZPascal ZPascal force-pushed the feature/ai-agent-support branch from ef87060 to da3ae59 Compare May 31, 2026 20:45
@ZPascal ZPascal changed the title Feature/ai agent support feat: add OpenAPI 3.1 spec and MCP server binary May 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant