CoFounder.im
Overview API Docs MCP Docs

list_projects

READ

List all CoFounder.im projects for the authenticated user.

The list_projects tool returns every project belonging to the authenticated user. Each project entry includes its UUID, name, current status, description, package type, and creation timestamp.

Use this tool as the first step in any workflow where you need to pick a project to inspect or modify. Only projects with status completed have full build specs available via get_build_spec. Projects in pending or processing states are still running their agent pipelines.

When no projects exist the response includes a helpful message prompting the user to create their first project with create_project.

Projects with status completed have all agent outputs available. Projects with status pending or processing are still running.

Parameters

No parameters required.

Response Example

{
  "projects": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "AI-powered recruitment platform for startups",
      "status": "completed",
      "description": "A platform that uses AI to match startup job postings with candidates.",
      "package_type": "basic",
      "inserted_at": "2026-02-15T10:23:44Z"
    },
    {
      "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      "name": "SaaS analytics dashboard",
      "status": "pending",
      "description": "Real-time analytics for SaaS metrics with churn prediction.",
      "package_type": "basic",
      "inserted_at": "2026-03-01T08:11:00Z"
    }
  ]
}

Errors

This tool has no error conditions.

Code Examples

curl -X POST https://mcp.cofounder.im/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "list_projects",
      "arguments": {}
    }
  }'
{:ok, response} =
  Req.post("https://mcp.cofounder.im/mcp",
    json: %{
      "jsonrpc" => "2.0",
      "id" => 1,
      "method" => "tools/call",
      "params" => %{
        "name" => "list_projects",
        "arguments" => %{}
      }
    },
    headers: [
      {"content-type", "application/json"},
      {"authorization", "Bearer YOUR_API_KEY"}
    ]
  )

response.body["result"]["content"]
|> hd()
|> Map.get("text")
|> IO.puts()
import requests

response = requests.post(
    "https://mcp.cofounder.im/mcp",
    headers={
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_API_KEY",
    },
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "tools/call",
        "params": {
            "name": "list_projects",
            "arguments": {},
        },
    },
)
data = response.json()
print(data["result"]["content"][0]["text"])
const response = await fetch("https://mcp.cofounder.im/mcp", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer YOUR_API_KEY",
  },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "tools/call",
    params: {
      name: "list_projects",
      arguments: {},
    },
  }),
});

const data = await response.json();
console.log(data.result.content[0].text);

Try It

This sends a real request to your account.