{
  "service": "SPEC//OS",
  "description": "MCP server: intent -> specification -> evidence for AI-assisted development.",
  "server": "specos",
  "version": "0.3.0",
  "endpoint": "https://specos.app/mcp",
  "docs": "https://specos.app/docs/mcp",
  "example": "https://specos.app/docs/mcp#example",
  "exampleProject": {
    "schemaVersion": "specos.public-example/1",
    "illustrative": true,
    "readOnly": true,
    "persisted": false,
    "project": {
      "id": "EXAMPLE-TASKBOARD",
      "name": "Taskboard — public example",
      "intent": "Let a person complete a task, keep that change after a reload, and keep each account's tasks separate.",
      "context": {
        "stack": "Illustrative TypeScript web application",
        "architecture": "A task list with account-scoped persistence; no repository is connected.",
        "constraints": [
          "Preserve existing tasks",
          "Keep account data separate"
        ]
      },
      "constitution": [
        {
          "id": "EXAMPLE-RULE-001",
          "kind": "MUST",
          "text": "Preserve saved tasks when changing their completion state."
        }
      ]
    },
    "appliedSnapshot": null,
    "serverRevision": null,
    "spec": {
      "objective": "Keep task completion reliable and account data separate.",
      "requirements": [
        {
          "id": "EXAMPLE-REQ-001",
          "title": "Keep completed tasks after a reload",
          "source": "proposed",
          "dependencies": [],
          "criteria": [
            {
              "id": "EXAMPLE-AC-001.1",
              "statement": "An identified reviewer confirms that completing a task and reloading preserves its completion state.",
              "verifierId": "human_review"
            }
          ]
        },
        {
          "id": "EXAMPLE-REQ-002",
          "title": "Keep each account's tasks separate",
          "source": "proposed",
          "dependencies": [
            "EXAMPLE-REQ-001"
          ],
          "criteria": [
            {
              "id": "EXAMPLE-AC-002.1",
              "statement": "An identified reviewer confirms that completing a task in one account leaves another account's tasks unchanged.",
              "verifierId": "human_review"
            }
          ]
        }
      ]
    },
    "evidence": [],
    "verification": {
      "status": "NOT_EVALUATED",
      "reason": "Illustrative content only. No checks have been run and no evidence is attached."
    },
    "nextWork": [
      {
        "requirementId": "EXAMPLE-REQ-001",
        "criterionId": "EXAMPLE-AC-001.1",
        "title": "Review task completion after a reload",
        "reason": "This example has no recorded review for EXAMPLE-AC-001.1."
      }
    ]
  },
  "pricing": {
    "schemaVersion": "specos.public-pricing/1",
    "creditUnit": "SPEC//OS credits",
    "currencyCost": null,
    "publicCreditRate": null,
    "availability": "requires_authenticated_scope",
    "authenticatedPreflightUrl": "https://specos.app/billing",
    "policy": "Company credit costs are configured per workspace and are visible in the authenticated billing dashboard when configured. There is no universal public credit rate or currency conversion. Personal provider costs are unavailable. Obtain explicit consent before a paid operation; unknown cost is not zero and is not authorization to execute.",
    "operations": [
      {
        "operation": "compile_specification",
        "usageMetric": "compile",
        "creditCost": null,
        "currencyCost": null,
        "availability": "requires_authenticated_scope",
        "requiresPaidConsent": true
      },
      {
        "operation": "chat",
        "usageMetric": "chat",
        "creditCost": null,
        "currencyCost": null,
        "availability": "requires_authenticated_scope",
        "requiresPaidConsent": true
      },
      {
        "operation": "agent_generation",
        "usageMetric": "agent_generation",
        "creditCost": null,
        "currencyCost": null,
        "availability": "requires_authenticated_scope",
        "requiresPaidConsent": true
      }
    ]
  },
  "count": 19,
  "tools": [
    {
      "name": "list_projects",
      "title": "List projects",
      "description": "List every SPEC//OS project the signed-in account can reach: the personal account and every company it belongs to, each project tagged with its company. Newest activity first.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "project_state",
      "title": "Project state",
      "description": "Read one project: name, company scope, intent, revision, applied specification size, open questions and the real verification status of the current revision. Call this before answering anything about a project.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "show_specification",
      "title": "Show specification",
      "description": "Read the applied specification: objective, constraints, non-goals, requirements and their acceptance criteria.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "show_graph",
      "title": "Show requirement map",
      "description": "Read the requirement map: every requirement with the requirements it depends on and the ones that depend on it.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "show_verification",
      "title": "Show verification status",
      "description": "Read the real verification status of the applied revision: which acceptance criteria pass, warn, fail or are still unverified, with the reasons and the evidence that was excluded.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "show_evidence",
      "title": "Show evidence",
      "description": "Read the evidence records collected for a project, newest first.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "show_history",
      "title": "Show history",
      "description": "Read the revision history of a project: every applied specification and why.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "create_project",
      "title": "Create project",
      "description": "Create a SPEC//OS project in an explicit personal or company scope, with intent, intake and constitution. This creates the specification workspace; the connected coding agent creates files and GitHub repositories using its own authorized tools.",
      "kind": "write",
      "writes": true,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "set_intent",
      "title": "Write the intent",
      "description": "Replace the intent of a project. This does not compile a specification. Read project_context afterward, then use compile_specification and apply_revision when a new specification is needed and compiler spending is authorized.",
      "kind": "write",
      "writes": true,
      "destructive": true,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "rename_project",
      "title": "Rename project",
      "description": "Change the display name of a project.",
      "kind": "write",
      "writes": true,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "compile_specification",
      "title": "Compile a specification (paid)",
      "description": "Compile the project intent into a proposed specification. This spends compiler credit on the account or company that owns the project, so ask the user before calling it. Nothing is written: pass the returned spec AND proposal_token to apply_revision to land it.",
      "kind": "paid",
      "writes": true,
      "destructive": false,
      "cost": {
        "creditCost": null,
        "currencyCost": null,
        "availability": "requires_authenticated_scope",
        "usageMetric": "compile",
        "requiresPaidConsent": true,
        "note": "Read the selected workspace's current credit cost after sign-in and obtain consent before compilation. Personal provider costs are unavailable."
      }
    },
    {
      "name": "apply_revision",
      "title": "Apply a revision",
      "description": "Land a compiled specification as the next revision of a project. Pass the spec AND the proposal_token returned by compile_specification, in the same shape. The write is refused if the project, its intent, context or constitution changed since the compilation, and a proposal can only be applied once.",
      "kind": "write",
      "writes": true,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "add_evidence",
      "title": "Attach evidence",
      "description": "Attach evidence for one acceptance criterion of the applied revision after actually running the check. Supply real measurements, sample id, capture time, command and artifact; use the SPEC//OS evidence contract version. Missing or inconsistent metadata is refused. Recording evidence does not itself mean the criterion passed.",
      "kind": "write",
      "writes": true,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "project_workflow",
      "title": "Start or continue a project",
      "description": "Prepare the next steps for a connected Codex, Claude Code or Cursor agent to start a new project or continue an existing one using SPEC//OS and its own GitHub/coding tools. Read-only guidance; does not create repositories or execute code.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "project_context",
      "title": "Read full project context",
      "description": "Read current intake, immutable applied specification and verification, plus a dated execution packet with input changes, suggested next action, focused requirements, saved source provenance and the evidence return contract. Call before coding or updating context; reconcile revisions before returning results.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "set_project_context",
      "title": "Update project intake and constitution",
      "description": "Replace current intake and constitution after reading project_context. Preserve existing documents/rules unless the user requested their removal. Requires the read revision; does not compile, apply a specification or verify evidence.",
      "kind": "write",
      "writes": true,
      "destructive": true,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "github_connection",
      "title": "Read GitHub connection and repositories",
      "description": "Read this explicit company's GitHub App connection, saved authorized repositories and project bindings. No tokens are returned. Personal scopes have no App connection; owner/admin connects through the web GitHub setup.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "bind_project_repository",
      "title": "Bind an authorized GitHub repository",
      "description": "Select an existing authorized GitHub repository for a project in the same explicit company. Requires workspace owner/admin. Replaces an existing binding; does not clone, create, push or modify repository files.",
      "kind": "write",
      "writes": true,
      "destructive": true,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    },
    {
      "name": "inspect_project_repository",
      "title": "Inspect repository for project intake",
      "description": "Read bounded repository observations pinned to a Git commit using the existing Genome reader. Company projects must use their authorized bound repository; personal projects may inspect an explicit public repository. Returns a proposed intake, without saving or executing repository content.",
      "kind": "read",
      "writes": false,
      "destructive": false,
      "cost": {
        "creditCost": 0,
        "currencyCost": null,
        "availability": "unmetered",
        "usageMetric": null,
        "requiresPaidConsent": false,
        "note": "This operation does not consume SPEC//OS credits. External agent or provider charges are separate and unknown."
      }
    }
  ]
}