{
  "markdown": "# Massdriver MCP Server\n\nA [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server for [Massdriver](https://massdriver.cloud), providing AI assistants with tools to manage your infrastructure platform — projects, environments, deployments, policies, and more.\n\n## Installation\n\nThis server is published to the [official MCP Registry](https://registry.modelcontextprotocol.io) as **`cloud.massdriver/mcp-server`** — MCP clients with registry support can discover and install it by that name.\n\nTo install manually, pick whichever suits your setup:\n\n**Download a release binary** — grab the archive for your platform (Linux, macOS, or Windows; amd64 and arm64) from [GitHub Releases](https://github.com/massdriver-cloud/mcp-server/releases) and put `mcp-server` on your `PATH`.\n\n**Go install** (requires Go 1.25+):\n\n```bash\ngo install github.com/massdriver-cloud/mcp-server@latest\n```\n\n**Docker**:\n\n```bash\ndocker pull massdrivercloud/mcp-server\n```\n\n**Build from source**:\n\n```bash\ngit clone https://github.com/massdriver-cloud/mcp-server.git\ncd mcp-server\nmake build   # outputs ./bin/mcp-server\n```\n\n## Configuration\n\nYou'll need a Massdriver API key and your organization ID — see the [Massdriver docs](https://docs.massdriver.cloud/) for creating API credentials.\n\nThe server reads configuration from environment variables, or from a profile in `~/.config/massdriver/config.yaml`:\n\n```bash\nexport MASSDRIVER_API_KEY=\"your-api-key\"\nexport MASSDRIVER_ORGANIZATION_ID=\"your-org-id\"\n# Optional:\nexport MASSDRIVER_URL=\"https://api.massdriver.cloud\"  # set this if you run a self-hosted Massdriver instance\nexport MASSDRIVER_PROFILE=\"default\"                   # named profile in ~/.config/massdriver/config.yaml\n```\n\n### Transports\n\nBy default the server speaks MCP over **stdio** (for local tool integrations like\nClaude Desktop). To serve the **Streamable HTTP** transport instead, pass `-http`\n(or set `MASSDRIVER_MCP_HTTP_ADDR`):\n\n```bash\n./bin/mcp-server -http 127.0.0.1:8080\n```\n\nThe HTTP endpoint is stateless and returns `application/json`, so a single tool\ncall is a plain POST (no session handshake required):\n\n```bash\ncurl -s 127.0.0.1:8080 \\\n  -H 'Content-Type: application/json' \\\n  -H 'Accept: application/json, text/event-stream' \\\n  -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"get_viewer\",\"arguments\":{}}}'\n```\n\n> The HTTP endpoint is unauthenticated and exposes infrastructure-mutating tools.\n> Bind it to localhost or place it behind an authenticating proxy.\n\n### Docker\n\nThe stdio transport needs an interactive stdin, so pass `-i`:\n\n```bash\ndocker run --rm -i \\\n  -e MASSDRIVER_API_KEY \\\n  -e MASSDRIVER_ORGANIZATION_ID \\\n  massdrivercloud/mcp-server\n```\n\nOn a self-hosted Massdriver instance, also pass `-e MASSDRIVER_URL`.\n\n> **Using a profile?** `MASSDRIVER_PROFILE` reads credentials from\n> `~/.config/massdriver/config.yaml`, which doesn't exist inside the container.\n> Either pass the credentials as environment variables as shown above, or mount\n> your config directory and point `XDG_CONFIG_HOME` at it:\n>\n> ```bash\n> docker run --rm -i \\\n>   -e MASSDRIVER_PROFILE \\\n>   -e XDG_CONFIG_HOME=/config \\\n>   -v ~/.config/massdriver:/config/massdriver:ro \\\n>   massdrivercloud/mcp-server\n> ```\n\n## MCP Client Configuration\n\n### Claude Code\n\n```bash\nclaude mcp add massdriver \\\n  --env MASSDRIVER_API_KEY=your-api-key \\\n  --env MASSDRIVER_ORGANIZATION_ID=your-org-id \\\n  -- /path/to/mcp-server\n```\n\n### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"massdriver\": {\n      \"command\": \"/path/to/mcp-server\",\n      \"env\": {\n        \"MASSDRIVER_API_KEY\": \"your-api-key\",\n        \"MASSDRIVER_ORGANIZATION_ID\": \"your-org-id\"\n      }\n    }\n  }\n}\n```\n\n### Other Clients\n\nThe server uses stdio transport, compatible with any MCP client.\n\n## Available Tools (106)\n\nSee [MCP_README.md](MCP_README.md) for the full tool reference, including per-tool descriptions, input conventions, pagination, and behavioral annotations.\n\n### Projects (6)\n`list_projects` `get_project` `create_project` `clone_project` `update_project` `delete_project`\n\n### Environments (11)\n`list_environments` `get_environment` `create_environment` `update_environment` `delete_environment` `set_environment_default` `remove_environment_default` `compare_environments` `fork_environment` `deploy_environment` `decommission_environment`\n\n### Instances (10)\n`list_instances` `get_instance` `update_instance` `set_instance_secret` `remove_instance_secret` `set_remote_reference` `remove_remote_reference` `copy_instance` `orphan_instance` `list_alarms`\n\n### Deployments (11)\n`list_deployments` `get_deployment` `get_deployment_logs` `create_deployment` `propose_deployment` `approve_deployment` `reject_deployment` `abort_deployment` `plan_deployment` `rollback_deployment` `compare_deployments`\n\n### Components (8)\n`list_components` `get_component` `add_component` `update_component` `set_component_position` `remove_component` `link_components` `unlink_components`\n\n### Bundles (1)\n`get_bundle`\n\n### Resources (9)\n`list_resources` `get_resource` `create_resource` `update_resource` `delete_resource` `export_resource` `create_resource_grant` `delete_resource_grant` `list_resource_grants`\n\n### Organization (6)\n`get_organization` `create_custom_attribute` `update_custom_attribute` `delete_custom_attribute` `list_organization_members` `list_custom_attributes`\n\n### Viewer (1)\n`get_viewer`\n\n### Audit Logs (3)\n`get_audit_log` `list_audit_logs` `list_audit_log_event_types`\n\n### Groups (14)\n`list_groups` `get_group` `create_group` `update_group` `delete_group` `add_group_user` `remove_group_user` `revoke_group_invitation` `add_group_service_account` `remove_group_service_account` `list_group_members` `list_group_service_accounts` `list_group_invitations` `list_group_policies`\n\n### Service Accounts (5)\n`list_service_accounts` `get_service_account` `create_service_account` `update_service_account` `delete_service_account`\n\n### OCI Repos (8)\n`list_oci_repos` `get_oci_repo` `create_oci_repo` `update_oci_repo` `delete_oci_repo` `create_oci_repo_grant` `delete_oci_repo_grant` `list_oci_repo_grants`\n\n### Policies (11)\n`get_policy` `create_policy` `update_policy` `delete_policy` `list_policy_actions` `list_policy_entities` `evaluate_policy` `evaluate_policies_batch` `explain_policy` `get_policy_attribute_schema` `list_policy_attribute_values`\n\n### Server (1)\n`get_server`\n\n### URLs (1)\n`get_url`\n\n## Contributing\n\nDevelopment, architecture, and release documentation lives in [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\n[MIT](LICENSE)\n",
  "bytes": 6707,
  "sha": "661033606abc95da93cc99e84ce102e6a820aec07db928801c05b7b984ff52a8",
  "repo_slug": "massdriver-cloud/mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_cloud_massdriver_mcp_server_68da44b1/readme"
}