Skip to content

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

Merged
ZPascal merged 7 commits into
feature/dns-api-extendedfrom
feature/ai-agent-support
May 30, 2026
Merged

feat: add OpenAPI 3.1 spec and MCP server binary#223
ZPascal merged 7 commits into
feature/dns-api-extendedfrom
feature/ai-agent-support

Conversation

@ZPascal
Copy link
Copy Markdown
Owner

@ZPascal ZPascal commented May 30, 2026

Summary

  • Static openapi.json (OpenAPI 3.1) documenting all endpoints served at GET /openapi.json via go:embed
  • New acme-dns-mcp binary in cmd/acme-dns-mcp/ — stdio MCP server compatible with Claude Code (/mcp add) and any MCP-capable agent
  • 7 MCP tools: health_check, register_subdomain, update_txt_record, list_dns_records, create_dns_record, update_dns_record, delete_dns_record
  • Config via ~/.acme-dns-mcp/config.toml or env vars (ACMEDNS_BASE_URL, ACMEDNS_ADMIN_TOKEN, ACMEDNS_USERNAME, ACMEDNS_PASSWORD)
  • Credentials never passed as tool arguments — config only
  • goreleaser updated to publish both binaries in releases

Depends on: #222

Test Plan

  • go test ./... passes (including cmd/acme-dns-mcp)
  • go build ./... builds both binaries
  • GET /openapi.json returns 200 with valid OpenAPI 3.1 JSON containing "openapi" key
  • echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | acme-dns-mcp returns 7 tools
  • echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | acme-dns-mcp returns protocolVersion: "2024-11-05"
  • Admin tools return {"error":"admin_token not configured"} when token not set

@ZPascal ZPascal merged commit 1a25900 into feature/dns-api-extended May 30, 2026
5 of 6 checks passed
@ZPascal ZPascal deleted the feature/ai-agent-support branch May 30, 2026 21:47
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