{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
  "name": "ms.carbon/carbon-erp",
  "description": "Carbon is an API-first operating system for manufacturing (ERP, MRP, MES, QMS). This MCP server exposes its ERP operations — items, sales, purchasing, production, inventory, quality and accounting — as tools an agent can search, inspect and call.",
  "version": "1.0.0",
  "websiteUrl": "https://carbon.ms",
  "repository": {
    "url": "https://github.com/crbnos/carbon",
    "source": "github"
  },
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://app.carbon.ms/api/mcp",
      "headers": [
        {
          "name": "Authorization",
          "description": "Bearer <api-key>. Create a scoped key in Settings → API Keys at https://app.carbon.ms/x/settings/api-keys. OAuth is also supported; an unauthenticated request returns 401 with a WWW-Authenticate pointing at the protected-resource metadata.",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ],
  "_meta": {
    "ms.carbon/v1": {
      "transport": "streamable-http",
      "endpoint": "https://app.carbon.ms/api/mcp",
      "serverName": "carbon-erp",
      "authentication": {
        "schemes": [
          "bearer",
          "oauth2"
        ],
        "protectedResourceMetadata": "https://app.carbon.ms/.well-known/oauth-protected-resource",
        "authorizationServerMetadata": "https://app.carbon.ms/.well-known/oauth-authorization-server",
        "unauthenticatedInitializeReturns": 401,
        "scopeModel": "A key is scoped to one company and to explicit module permissions; row-level security in the database enforces the same boundary as the app."
      },
      "tools": [
        {
          "name": "search_tools",
          "description": "Search Carbon's ERP operations by name, module or classification (READ, WRITE, DESTRUCTIVE), and make the matches available to call.",
          "readOnly": true
        },
        {
          "name": "describe_tool",
          "description": "Return the full input schema and description for one operation, so its arguments can be built correctly before calling it.",
          "readOnly": true
        },
        {
          "name": "call_tool",
          "description": "Call an operation by name with its arguments. The company and user are taken from the credential, never from the arguments.",
          "readOnly": false
        }
      ],
      "operations": {
        "description": "search_tools, describe_tool and call_tool reach more than 1,400 ERP operations across 15 modules, each classified READ, WRITE or DESTRUCTIVE.",
        "modules": [
          "account",
          "accounting",
          "documents",
          "inventory",
          "invoicing",
          "items",
          "people",
          "production",
          "purchasing",
          "quality",
          "resources",
          "sales",
          "settings",
          "shared",
          "users"
        ],
        "classifications": [
          "READ",
          "WRITE",
          "DESTRUCTIVE"
        ]
      },
      "documentation": {
        "mcpGuide": "https://docs.carbon.ms/mcp",
        "apiReference": "https://docs.carbon.ms/api-reference",
        "authentication": "https://docs.carbon.ms/api-reference/authentication",
        "openapi": "https://carbon.ms/openapi.json"
      },
      "clientConfig": {
        "mcpServers": {
          "carbon": {
            "type": "http",
            "url": "https://app.carbon.ms/api/mcp",
            "headers": {
              "Authorization": "Bearer ${CARBON_API_KEY}"
            }
          }
        }
      }
    }
  }
}
