Skip to content

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

Merged
ZPascal merged 1 commit into
mainfrom
feature/ai-agent-support
Jul 12, 2026
Merged

feat: Add OpenAPI 3.1 spec and MCP server binary#225
ZPascal merged 1 commit into
mainfrom
feature/ai-agent-support

Conversation

@ZPascal

@ZPascal ZPascal commented May 31, 2026

Copy link
Copy Markdown
Owner

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"}

All items above were verified end-to-end against a locally running acme-dns instance with cmd/acme-dns-mcp communicating over stdio.

@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
@ZPascal ZPascal force-pushed the feature/dns-api-extended branch 3 times, most recently from c4045a1 to 360a8ae Compare June 25, 2026 17:41
@ZPascal ZPascal force-pushed the feature/dns-api-extended branch 3 times, most recently from 4d70ec0 to 14501d8 Compare July 6, 2026 06:02
Base automatically changed from feature/dns-api-extended to main July 6, 2026 06:05
@ZPascal ZPascal changed the title feat: add OpenAPI 3.1 spec and MCP server binary feat: Add OpenAPI 3.1 spec and MCP server binary Jul 8, 2026
@ZPascal ZPascal force-pushed the feature/ai-agent-support branch from da3ae59 to 0251b9d Compare July 11, 2026 14:47
* feat: Add MCP server config loading (file + env vars)
* feat: Add MCP tool definitions and HTTP proxy logic
* feat: Serve OpenAPI 3.1 spec at GET /openapi.json
* feat: Add MCP binary stdio entry point with JSON-RPC 2.0 protocol
* fix: surface acme-dns API errors as MCP tool failures, harden mcp binary
* docs: Document the MCP server and OpenAPI endpoint; expand mcp test coverage

Signed-off-by: Pascal Zimmermann <pascal.zimmermann@theiotstudio.com>
@ZPascal ZPascal force-pushed the feature/ai-agent-support branch from 8a9e8bc to 6e0a253 Compare July 12, 2026 12:40
@ZPascal ZPascal merged commit d6ab2ca into main Jul 12, 2026
6 checks passed
@ZPascal ZPascal deleted the feature/ai-agent-support branch July 12, 2026 12:45
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