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.
Summary
The
fetchMCP tool's schema only takesid. There is noproject_id/projectparameter, 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-starteddrew-cain/getting-started(organization)A note is created in
drew-cain/getting-started:permalink: getting-started/notes/org-endpoint-smoke-testproject_id: 755a4414-1c2a-4c5a-8504-ee743a1b8b92The "related notes" returned are from a completely different project (
open-ghl-mcp/...) — i.e.fetchdefaulted tomainregardless of the permalink prefix.Other read tools (
read_note,read_content,view_note) acceptproject_idand work correctly.Expected
fetchshould accept aproject_id(and/orproject) parameter matching the rest of the tool surface, and use it to resolve the permalink. Without that,fetchis unusable for any project other than the user's default.