Skip to main content
The /mcp-servers endpoints expose Armature’s MCP source catalog. Use them to inventory the sources connected to your organization, register new sources from infrastructure-as-code, or look up a specific source before creating a workflow against it. All paths in this page are relative to the REST API base URL. All requests require an API key.

List MCP sources

GET /mcp-servers
Returns active production MCP sources for your organization. Query parameters
ParameterDescription
categoryOne or more category slugs. Comma-separated values are accepted.
categorySlugAlternative single-slug filter.
Example
curl https://your-org.armature.app/api/armature/v1/mcp-servers \
  -H "Authorization: Bearer amt_<key-id>_<secret>"
Response
{
  "rows": [
    {
      "id": "mcp_…",
      "name": "Production GitHub MCP",
      "transport_type": "streamable_http",
      "base_url": "https://github-mcp.example.com",
      "categories": ["dev-tools"]
    }
  ]
}

Get one MCP source

GET /mcp-servers/{id}
Returns the full record for a single source.
curl https://your-org.armature.app/api/armature/v1/mcp-servers/{id} \
  -H "Authorization: Bearer amt_<key-id>_<secret>"

Create an MCP source

POST /mcp-servers
Registers a new MCP source. Requires editor, admin, or owner. Request body
FieldTypeRequiredDescription
namestringyesDisplay name shown in the dashboard.
transportTypestringstreamable_http, sse, or stdio_hosted.
targetKindstringmcp or cli.
baseUrlstring (URI)Endpoint URL for HTTP and SSE transports.
connectionConfigobjectTransport-specific configuration.
networkPolicyobjectNetwork policy for hosted or CLI targets.
authProfileobjectOptional default auth profile to create alongside the source.
environmentstringDefaults to production.
Example
curl https://your-org.armature.app/api/armature/v1/mcp-servers \
  -H "Authorization: Bearer amt_<key-id>_<secret>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production GitHub MCP",
    "transportType": "streamable_http",
    "targetKind": "mcp",
    "baseUrl": "https://github-mcp.example.com",
    "authProfile": {
      "name": "default",
      "authType": "bearer_token",
      "authConfig": { "header_name": "Authorization" }
    }
  }'
Response (201 Created)
{
  "server": { "id": "mcp_…", "name": "Production GitHub MCP" },
  "authProfile": { "id": "auth_…", "name": "default" },
  "discoveryJob": { "id": "job_…", "status": "queued" },
  "provisioningJob": null
}
If the source is hosted or backed by a CLI binary, Armature also queues a discovery and (when relevant) a provisioning job. The IDs in the response can be used to poll job status from the dashboard.
Never put plaintext credentials in authConfig. Configure the auth profile in the dashboard after creation, or reference a managed secret. See Connecting an MCP source for the supported auth types.