---
title: "MCP servers the project's repository declares, with their bindings"
method: GET
path: "/mcp/projects/{projectId}"
tags: ["mcp"]
---

# MCP servers the project's repository declares, with their bindings

`GET /mcp/projects/{projectId}`

## Request

- Base URL: `https://api.letsship.ai/v1`
- URL: `https://api.letsship.ai/v1/mcp/projects/{projectId}`
- Auth: none declared

## Path parameters

- `projectId` string, required

## Response `200`

Project MCP view

- McpProjectView
  - `projectId` string, required
  - `configPath` string, required
  - `configPathSource` 'ship.yml' | 'project' | 'default', required: Which layer named the MCP file: the repository's ship.yml (mcp.config), the path set on the project, or the default .mcp.json. ship.yml wins.
  - `configRef` string, nullable, required
  - `configStatus` 'ok' | 'missing' | 'invalid' | 'unreadable', required
  - `configError` string, nullable, required
  - `warnings` string[], required
  - `servers` McpProjectServer[], required
    - `name` string, required
    - `declared` McpServerSummary, required: A server as the repository declares it. Values are never included; only names.
      - `name` string, required
      - `transport` 'http' | 'sse' | 'stdio', required
      - `origin` string
      - `path` string
      - `command` string
      - `displayArgs` string[]
      - `headerNames` string[], required
      - `envNames` string[], required
      - `secretRefs` string[], required
      - `isolation` McpIsolation, required
        - `kind` 'remote' | 'npm' | 'not-isolatable', required
        - `packageSpec` string
        - `reason` 'python' | 'docker' | 'repo-relative' | 'binary'
    - `binding` McpBinding, required
      - `transport` 'remote' | 'isolate' | 'local', required: remote: the gateway proxies to the server's URL. isolate: the gateway runs the server's npm package in an isolated runtime. local: the server runs inside the agent's sandbox (no credential).
      - `status` 'ready' | 'needs_credential' | 'needs_reconnect' | 'origin_changed' | 'bundling' | 'bundle_failed' | 'not_isolatable', required
      - `statusDetail` string, nullable, required
      - `roles` McpRole[], required
      - `authKind` 'none' | 'headers' | 'oauth' | 'isolate-env', required
      - `pinnedUrl` string, nullable, required
      - `packageSpec` string, nullable, required
      - `allowedEgressHosts` string[], required
      - `credentialFields` string[], required
      - `toolSnapshot` McpToolSnapshotEntry[], required
        - `name` string, required
        - `title` string
        - `description` string
        - `readOnlyHint` boolean
        - `destructiveHint` boolean
      - `approvedTools` McpApprovedTool[], required
        - `name` string, required
        - `attestedReadOnly` boolean
      - `toolsRefreshedAt` integer, nullable, required
      - `effectiveToolCounts` object, required
        - `planner` integer, nullable
        - `builder` integer, nullable
        - `reviewer` integer, nullable
        - `qa` integer, nullable
      - `createdAt` integer, required
      - `updatedAt` integer, required

## Other responses

- `404`: Not found (also for other tenants)

---

[API](https://skmtc.dev/letsship/apis/ship-api.md) · [All operations](https://skmtc.dev/letsship/apis/ship-api/llms.txt) · [OpenAPI document](https://skmtc.dev/letsship/apis/ship-api/revisions/e6eac1bcadd4?raw)
