MCP Tools
Projects

get_project

Get the details of a specific project: its members, documents, context items, and its brief. Read the brief before doing substantive work in the project. Find project IDs with list_projects.

Parameters

NameTypeRequiredDefaultDescription
project_idstring (uuid)Yes—The project's UUID, exactly as returned in the `project_id` field of list_projects or create_project. A numeric id or a project name will not resolve. You must be a member of the project's team, and if the project is private you must also be one of its members, or the call is rejected.

Input Schema

{
  "type": "object",
  "required": [
    "project_id"
  ],
  "properties": {
    "project_id": {
      "type": "string",
      "format": "uuid",
      "description": "The project's UUID, exactly as returned in the `project_id` field of list_projects or create_project. A numeric id or a project name will not resolve. You must be a member of the project's team, and if the project is private you must also be one of its members, or the call is rejected."
    }
  }
}

Output Schema

{
  "type": "object",
  "required": [
    "id",
    "name"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Project UUID."
    },
    "name": {
      "type": "string",
      "description": "Project name."
    },
    "status": {
      "type": "string",
      "description": "Project status (e.g. active, archived)."
    },
    "members": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Member name."
          },
          "role": {
            "type": "string",
            "description": "Role in project (e.g. owner, member)."
          },
          "email": {
            "type": "string",
            "description": "Member email."
          },
          "user_id": {
            "type": "integer",
            "description": "User ID."
          }
        }
      }
    },
    "documents": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Content name."
          },
          "purpose": {
            "type": "string",
            "description": "Role of content in project (e.g. supporting)."
          },
          "web_url": {
            "type": "string",
            "description": "Direct URL to view this content in Marcora."
          },
          "category": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              }
            },
            "description": "Content category, or null."
          },
          "is_ready": {
            "type": "boolean",
            "description": "Whether generation is complete."
          },
          "content_id": {
            "type": "string",
            "format": "uuid",
            "description": "Content UUID — pass to get_content or update_content."
          },
          "visibility": {
            "type": "string",
            "description": "Visibility setting."
          },
          "is_project_brief": {
            "type": "boolean",
            "description": "True on the one document that is this project's brief. Brief-flagged entries are sorted first. Read that document before doing substantive work in this project — see the top-level project_brief block."
          },
          "in_project_context": {
            "type": "boolean",
            "description": "Whether included in project context for AI generation."
          }
        }
      }
    },
    "created_at": {
      "type": "integer",
      "description": "Unix timestamp of creation."
    },
    "visibility": {
      "type": "string",
      "description": "Visibility (e.g. team, private)."
    },
    "context_items": {
      "type": "array",
      "description": "Context items associated with this project."
    },
    "project_brief": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "truncated": {
          "type": "boolean",
          "description": "True when content_intro is an excerpt and the full body must be fetched with get_content."
        },
        "content_id": {
          "type": "string",
          "format": "uuid"
        },
        "read_first": {
          "type": "string",
          "description": "Imperative instruction stating why the brief must be read before working in this project, including the content_id to fetch."
        },
        "word_count": {
          "type": "integer",
          "description": "Word count of the full brief body."
        },
        "content_intro": {
          "type": "string",
          "description": "The brief's body, in full when short, otherwise its opening ~400 words."
        }
      },
      "description": "The project's brief, if one is set — the authoritative statement of the project's premise, scope and structural decisions. READ IT FIRST: other documents and context items in this project may be older than it or contradict it. content_intro is an excerpt (the full body when the brief is short, otherwise the opening ~400 words with truncated: true); pass content_id to get_content for the full text, or to update_content to edit it."
    }
  }
}

Instructions

Returns details for a specific project: its members, documents, context items, and, when one is set, the project's brief.

Read the brief before doing substantive work in this project. The project_brief block is the project's authoritative statement of premise, scope and the structural decisions already taken. Its content_intro is the full body when the brief is 600 words or fewer, otherwise the opening 400 words with truncated: true. Call get_content with its content_id for the full text. The other documents and context items in this project may be older than the brief, or may contradict it, and the brief wins. Work produced without reading it is likely to contradict decisions already made. The matching entry in documents is flagged is_project_brief: true and sorted first.

Use list_projects to discover available projects and find the project_id.

project_brief.content_id is also the id to pass to update_content to edit the brief.

Response Shape

Field Type Description
id uuid Project UUID.
name string Project name.
status string Project status (e.g. active, archived).
visibility string Visibility (e.g. team, private).
members object[] Project members.
documents object[] Documents in this project. Each entry: content_id, name, visibility, is_ready, category, purpose, is_project_brief, in_project_context, web_url. The brief's entry has is_project_brief: true and is sorted first.
project_brief object | null The project's brief, or null when none is set. See below.
context_items object[] Context items associated with this project.
created_at integer Creation timestamp.

project_brief Object

Field Type Description
content_id uuid The brief document's UUID. Pass to get_content to read it in full, or to update_content to edit it.
name string The brief's title.
word_count integer Word count of the full brief body.
content_intro string The full body when the brief is 600 words or fewer; otherwise its opening 400 words.
truncated boolean True when content_intro is an excerpt. Call get_content for the full body.
read_first string An instruction to read the brief before working in the project, naming the content_id to fetch.

Example prompts

  • "Show me the details of my product launch project"
  • "What documents are in this project?"
  • "What's the premise of the Acme project? Read its brief before we start"
  • "Open the brief for the Acme project so I can edit it"
Scroll to Top