Input Schema
{
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"description": "Filter by organization (optional)"
},
"limit": {
"type": "number",
"default": 20,
"maximum": 100
}
}
}
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
organizationId | string | - | Filter by organization |
limit | number | 20 | Items per page (max 100) |
Response
| Field | Type | Description |
|---|---|---|
data | array | Array of project objects |
data[].id | string | Unique project identifier |
data[].name | string | Display name of the project |
data[].description | string | Project description |
data[].organizationId | string | Parent organization ID |
pagination | object | Pagination metadata |
pagination.lastKey | string | Present when more projects exist. list_projects can’t fetch the next page; raise limit (max 100) instead. |
Example
Request
{
"organizationId": "org_456"
}
Response
{
"data": [
{
"id": "proj_123",
"name": "Marketing Website",
"description": "Main marketing website content",
"organizationId": "org_456"
},
{
"id": "proj_124",
"name": "Marketing Mobile App",
"description": "Mobile app for marketing campaigns",
"organizationId": "org_456"
}
],
"pagination": {}
}
Usage
Use this tool to discover available projects before setting context:// List all projects
const result = await mcp.call("list_projects", {});
// Display projects to help select one
for (const project of result.data) {
console.log(`${project.name} (${project.id}) - ${project.description}`);
}
// Set context to the first project
await mcp.call("set_project", { projectId: result.data[0].id });
Filter by Organization
// List projects for a specific organization
const result = await mcp.call("list_projects", {
organizationId: "org_456"
});