Setting up an MCP client
Every MCP client sees the same three tools fronting the full registry:
discover_forgetful_tools (what exists, by category), how_to_use_forgetful_tool (one
tool's docs and schema), execute_forgetful_tool (invoke by name with a JSON arguments
object). Roughly 500 tokens of surface, with everything else disclosed at runtime.
Pick a transport
- stdio — the client spawns the server per session: command
uvx forgetful-ai(equivalentlyforgetful serve --transport stdio). Right for a personal, local setup. - HTTP — the client connects to a running server at
<server>/mcp, e.g.http://localhost:8020/mcp. Right for a shared or deployed instance.
Claude Code, as the worked example:
claude mcp add forgetful -- uvx forgetful-ai # stdio
claude mcp add --transport http forgetful http://localhost:8020/mcp # HTTP
Other clients follow the same two shapes (spawn command, or HTTP endpoint) in their own
config format — full per-client walkthroughs live in docs/connectivity_guide.md in the
Forgetful repo.
Auth and scopes
A local server defaults to no-auth single-user mode — connect and go. Deployed servers use
bearer tokens or OAuth (the server's configured provider). FORGETFUL_SCOPES on the server
side sets a capability ceiling (e.g. read-only) that both MCP and CLI honour; a client that
should only recall can be scoped so writes are refused.
Verify — the completion criterion
Behavioural, not configurational:
discover_forgetful_toolsreturns categories, and they match the server's enabled feature flags (skills/files/plans appear only when enabled).- One
execute_forgetful_toolround-trip returns real data —get_current_userorlist_projectsboth work as smoke calls.
Done when: both pass in the client that was just wired, in a fresh session.
Delegation boundary
Run Forgetful MCP calls in the main conversation — subagents do not inherit MCP tool
access. When work must be delegated to a subagent, give it the CLI surface instead
(Bash with the forgetful command travels into subagents; see forgetful-cli-setup).