Skip to content

fetch MCP tool cannot target non-default project (no project_id parameter) #782

@groksrc

Description

@groksrc

Summary

The fetch MCP tool's schema only takes id. There is no project_id / project parameter, so it always resolves the permalink against the default project. When a permalink references a note in any other project (including in the same workspace, or in an org workspace), the tool returns "Note Not Found" plus unrelated suggestions from the default project.

Reproduction

Two projects with overlapping namespace exist:

  • Personal/getting-started
  • drew-cain/getting-started (organization)

A note is created in drew-cain/getting-started:

  • permalink: getting-started/notes/org-endpoint-smoke-test
  • project_id: 755a4414-1c2a-4c5a-8504-ee743a1b8b92
fetch(id="getting-started/notes/org-endpoint-smoke-test")
→
{
  "title": "Org Endpoint Smoke Test",
  "text": "# Note Not Found in main: \"getting-started/notes/org-endpoint-smoke-test\" ...",
  "metadata": {"error": "Document not found"}
}

The "related notes" returned are from a completely different project (open-ghl-mcp/...) — i.e. fetch defaulted to main regardless of the permalink prefix.

Other read tools (read_note, read_content, view_note) accept project_id and work correctly.

Expected

fetch should accept a project_id (and/or project) parameter matching the rest of the tool surface, and use it to resolve the permalink. Without that, fetch is unusable for any project other than the user's default.

Metadata

Metadata

Assignees

No one assigned

    Labels

    On HoldDon't review or merge. Work is pendingbugSomething isn't working

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions