{"id":40222094,"url":"https://github.com/major/porkbun-mcp","last_synced_at":"2026-01-23T19:00:54.465Z","repository":{"id":333182817,"uuid":"1136409636","full_name":"major/porkbun-mcp","owner":"major","description":"🐷 MCP server for Porkbun DNS API - manage domains, DNS records, DNSSEC, and SSL certificates","archived":false,"fork":false,"pushed_at":"2026-01-19T22:25:55.000Z","size":199,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-20T02:02:21.546Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/major.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-17T16:35:28.000Z","updated_at":"2026-01-19T22:25:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/major/porkbun-mcp","commit_stats":null,"previous_names":["major/porkbun-mcp"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/major/porkbun-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/major%2Fporkbun-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/major%2Fporkbun-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/major%2Fporkbun-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/major%2Fporkbun-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/major","download_url":"https://codeload.github.com/major/porkbun-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/major%2Fporkbun-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28698343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T17:25:48.045Z","status":"ssl_error","status_checked_at":"2026-01-23T17:25:47.153Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-19T22:06:18.434Z","updated_at":"2026-01-23T19:00:54.453Z","avatar_url":"https://github.com/major.png","language":"Python","funding_links":[],"categories":["カテゴリ"],"sub_categories":["☁️ \u003ca name=\"cloud--infrastructure\"\u003e\u003c/a\u003eクラウド・インフラ"],"readme":"# porkbun-mcp\n\nMCP server for the [Porkbun](https://porkbun.com/) DNS API.\n\nManage DNS records, domains, DNSSEC, SSL certificates, and more via the Model Context Protocol.\n\n[![CI](https://github.com/major/porkbun-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/major/porkbun-mcp/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/major/porkbun-mcp/branch/main/graph/badge.svg)](https://codecov.io/gh/major/porkbun-mcp)\n[![PyPI version](https://badge.fury.io/py/porkbun-mcp.svg)](https://pypi.org/project/porkbun-mcp/)\n[![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Configuration\n\nSet your Porkbun API credentials as environment variables:\n\n```bash\nexport PORKBUN_API_KEY=\"pk1_...\"\nexport PORKBUN_SECRET_KEY=\"sk1_...\"\n```\n\nGet your API keys from the [Porkbun API Access page](https://porkbun.com/account/api).\n\n## Read-Only Mode (Default)\n\nBy default, porkbun-mcp runs in **read-only mode** for safety. Write operations\n(create, edit, delete) will return an error until explicitly enabled.\n\n### Enabling Write Operations\n\nTo let the pig get muddy and make changes:\n\n**Environment variable:**\n\n```bash\nexport PORKBUN_GET_MUDDY=true\n```\n\n**CLI flag:**\n\n```bash\nuvx porkbun-mcp --get-muddy\n```\n\n## Usage\n\nRun directly with [uvx](https://docs.astral.sh/uv/) (no installation required):\n\n```bash\nuvx porkbun-mcp\n```\n\n### SSE transport\n\n```bash\nuvx porkbun-mcp --transport sse\n```\n\n## MCP Client Configuration\n\n### Claude Desktop\n\nAdd to `~/.config/claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"porkbun\": {\n      \"command\": \"uvx\",\n      \"args\": [\"porkbun-mcp\", \"--get-muddy\"],\n      \"env\": {\n        \"PORKBUN_API_KEY\": \"pk1_...\",\n        \"PORKBUN_SECRET_KEY\": \"sk1_...\"\n      }\n    }\n  }\n}\n```\n\n\u003e **Note:** Remove `--get-muddy` from args for read-only mode (recommended for safety).\n\n### Claude Code / Codex\n\nAdd to `~/.claude/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"porkbun\": {\n      \"command\": \"uvx\",\n      \"args\": [\"porkbun-mcp\", \"--get-muddy\"],\n      \"env\": {\n        \"PORKBUN_API_KEY\": \"pk1_...\",\n        \"PORKBUN_SECRET_KEY\": \"sk1_...\"\n      }\n    }\n  }\n}\n```\n\n### VS Code\n\nAdd to `.vscode/mcp.json` in your workspace (or use `MCP: Add Server` command):\n\n```json\n{\n  \"servers\": {\n    \"porkbun\": {\n      \"command\": \"uvx\",\n      \"args\": [\"porkbun-mcp\", \"--get-muddy\"],\n      \"env\": {\n        \"PORKBUN_API_KEY\": \"pk1_...\",\n        \"PORKBUN_SECRET_KEY\": \"sk1_...\"\n      }\n    }\n  }\n}\n```\n\n### OpenCode\n\nAdd to your `opencode.json` configuration:\n\n```json\n{\n  \"mcp\": {\n    \"porkbun\": {\n      \"type\": \"local\",\n      \"command\": [\"uvx\", \"porkbun-mcp\", \"--get-muddy\"],\n      \"environment\": {\n        \"PORKBUN_API_KEY\": \"pk1_...\",\n        \"PORKBUN_SECRET_KEY\": \"sk1_...\"\n      }\n    }\n  }\n}\n```\n\n## Available Tools\n\n### DNS\n\n- `dns_list` - List all DNS records for a domain\n- `dns_get` - Get a specific DNS record by ID\n- `dns_get_by_name_type` - Get DNS records by subdomain and type\n- `dns_create` - Create a new DNS record\n- `dns_edit` - Edit a DNS record by ID\n- `dns_edit_by_name_type` - Edit DNS records by subdomain and type\n- `dns_delete` - Delete a DNS record by ID\n- `dns_delete_by_name_type` - Delete DNS records by subdomain and type\n\n### Domains\n\n- `domains_list` - List all domains in your account\n- `domains_get_nameservers` - Get nameservers for a domain\n- `domains_update_nameservers` - Update nameservers for a domain\n- `domains_get_url_forwards` - Get URL forwarding rules\n- `domains_add_url_forward` - Add a URL forwarding rule\n- `domains_delete_url_forward` - Delete a URL forwarding rule\n- `domains_check_availability` - Check domain availability and pricing\n- `domains_get_glue_records` - Get glue records for a domain\n\n### DNSSEC\n\n- `dnssec_list` - List DNSSEC records for a domain\n- `dnssec_create` - Create a DNSSEC record\n- `dnssec_delete` - Delete a DNSSEC record\n\n### SSL\n\n- `ssl_retrieve` - Retrieve the SSL certificate bundle for a domain\n\n### Pricing\n\n- `pricing_get` - Get pricing for all available TLDs\n\n### Utility\n\n- `ping` - Test API connectivity and get your public IP\n\n## Resources\n\nBrowse data via MCP resources:\n\n- `porkbun://domains` - List all domains\n- `porkbun://dns/{domain}` - DNS records for a domain\n- `porkbun://ssl/{domain}` - SSL certificate bundle for a domain\n- `porkbun://pricing` - TLD pricing information\n\n## Prompts\n\nPre-defined workflows to guide common DNS operations:\n\n- `dns_setup` - Set up basic DNS for a new server (root A + www records)\n- `dns_audit` - Audit DNS configuration for issues (duplicates, missing email records, low TTLs)\n- `email_dns_setup` - Configure email DNS (MX, SPF, DKIM, DMARC)\n- `update_server_ip` - Update DNS records when migrating to a new server IP\n- `subdomain_setup` - Create A/CNAME records for a new subdomain\n\n## Development\n\n```bash\n# Install dependencies\nuv sync --dev\n\n# Run all checks\nmake check\n\n# Individual commands\nmake lint       # ruff check\nmake format     # ruff format\nmake typecheck  # ty check\nmake test       # pytest with coverage\n```\n\n## License\n\nMIT\n\n\u003c!-- mcp-name: io.github.major/porkbun --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmajor%2Fporkbun-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmajor%2Fporkbun-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmajor%2Fporkbun-mcp/lists"}