Repository navigation
docs(mcp): point users at the official everos-mcp server - #484
Conversation
Add docs/mcp.md with the client setup for Claude Code, Codex and JSON-configured hosts against a self-hosted server, list it in the docs index, and replace the community evermemos-mcp card in README and docs/use-cases.md with the official package. `everos init` now ends with a pointer to the guide and `everos server start` logs the `uvx everos-mcp` line to use. Verified against a local server: all seven everos-mcp tools answer. The guide records the self-hosted limitations: no session-delete endpoint yet (#483) and about a second of index lag after saving. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
dani1005
left a comment
There was a problem hiding this comment.
Thanks, this fills a real gap: the repo never mentioned the official MCP server, and the README still pointed at the Cloud-only community project. The guide itself reads well.
Three things I'd fix before merging, because they mislead users directly (details inline):
- The startup hint builds
EVEROS_BASE_URLfrom the bind host, so0.0.0.0and::produce URLs clients can't use. docs/mcp.mdis referenced as a relative path from the CLI. The wheel only packagessrc/everos, so pip/uvx installs don't have the file.- The tool table names
POST /api/v2/memory/delete, which doesn't exist on this server.
Smaller suggestions:
- The MCP hint is logged before uvicorn binds, so on "address already in use" the log first says "connect here" and then reports the failure. Emitting it after a successful bind (lifespan/startup) avoids that.
- Neither the new init step nor the server hint has a test. An assertion on the hint text, plus the URL it renders for a non-default host and port, would have caught (1).
- The MCP card is now duplicated word for word in
README.mdanddocs/use-cases.md, differing only in the link path. The old cards had already drifted ("With" vs "with"), so it may be worth keeping one source.
| bootstrap_logger = logging.getLogger("everos.cli.server") | ||
| bootstrap_logger.info("starting everos on %s:%d", host_resolved, port_resolved) | ||
| bootstrap_logger.info( | ||
| "MCP clients: uvx everos-mcp with EVEROS_BASE_URL=http://%s:%d (docs/mcp.md)", |
There was a problem hiding this comment.
host_resolved is the bind address, not a client address:
--host 0.0.0.0logsEVEROS_BASE_URL=http://0.0.0.0:8000. That isn't a valid target on Windows or from another machine, which is the usual reason to bind 0.0.0.0.--host ::logshttp://:::8000, which isn't a valid URL.
Suggest mapping wildcard binds (0.0.0.0, ::) to 127.0.0.1 (or a <host> placeholder) and bracketing IPv6 literals. Also (docs/mcp.md) should be the absolute GitHub URL, same as in init_cmd.py.
| root_flag = f" --root {resolved}" if root else "" | ||
| typer.echo(f" 2. Run: everos server start{root_flag}") | ||
| typer.echo( | ||
| " 3. Connect an MCP client (Claude Code, Codex, Cursor): see docs/mcp.md" |
There was a problem hiding this comment.
After pip install everos / uvx everos there's no docs/ on disk: the wheel only packages src/everos (pyproject.toml, [tool.hatch.build.targets.wheel]). The path is also resolved against whatever directory the user is in. Please use https://github.com/EverMind-AI/EverOS/blob/main/docs/mcp.md.
| | `list_memories` | Chronological, paginated browsing | `POST /api/v2/memory/get` | | ||
| | `record_trajectory` | Records how a task was solved so EverOS can distill cases and skills | `POST /api/v2/memory/add` + `flush` | | ||
| | `recall_agent_experience` | Finds distilled cases and skills relevant to the task at hand | `POST /api/v2/memory/search` (agent owner) | | ||
| | `forget_session` | Deletes what this connection stored | `POST /api/v2/memory/delete` — see below | |
There was a problem hiding this comment.
This server has no /api/v2/memory/delete route; the API mounts add/flush/search/get plus the ome, knowledge and cascade routers. Anyone using this column as an API reference gets a 404. Suggest "not available on self-hosted (#483)" here instead of naming an endpoint.
| - **`forget_session` is not available yet.** Self-hosted EverOS has no session-scoped delete | ||
| endpoint; the tool reports this instead of failing. Memories are Markdown files under the | ||
| memory root (`~/.everos/` by default) — delete them there. | ||
| - **New memories are searchable about a second after saving.** `add_memory` returns once |
There was a problem hiding this comment.
Same claim as EverMind-AI/EverOS-MCP#3, which I've suggested changing: either wait=true waits for indexing, or one conservative latency statement is used everywhere (search_memory currently says "the last minute"). Worth keeping this line in sync with whatever lands there, or phrasing it generically ("shortly after saving; list_memories shows new entries sooner").
|
|
||
| ## What the assistant gets | ||
|
|
||
| | Tool | What it does | EverOS endpoint | |
There was a problem hiding this comment.
Optional: this table and the self-hosted behaviour section mirror the everos-mcp README, but everos-mcp releases on its own schedule, so they'll go stale silently when a tool is added or renamed. Consider keeping only what's EverOS-specific (prerequisites, base URL, self-hosted gaps) and linking to the everos-mcp README for the tool list.
- The server start hint built EVEROS_BASE_URL from the bind address, so `--host 0.0.0.0` printed a URL no client can dial and `--host ::` an invalid one. `mcp_base_url()` maps wildcard binds to 127.0.0.1 and brackets IPv6 literals; the hint is worded "once up" because it is logged before uvicorn binds. - Both CLI hints linked `docs/mcp.md` by relative path, which does not exist in a pip / uvx install (the wheel ships only src/everos). They now use the GitHub URL. - docs/mcp.md no longer names `POST /api/v2/memory/delete`, which this server does not have; the tool table is replaced by a link to the everos-mcp README so it cannot go stale, and the latency note is phrased without a number. - Tests cover the URL mapping, the logged hint and the init step. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Thanks — all three must-fix items are in the latest commit, plus most of the smaller ones:
Smaller ones:
|
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Thanks, all addressed. Agreed on the hint placement and on leaving the card duplication for a separate change. I pushed one small doc fix (5c598ca): the tool paragraph said all seven tools are backed by this server's endpoints, but |
Summary
EverMind now ships an official MCP server,
everos-mcp, which works against a self-hosted EverOS throughEVEROS_BASE_URL. This repo did not tell anyone: the README still pointed at the communityevermemos-mcpproject (Cloud-only), and nothing in the CLI hinted that MCP clients can connect.docs/mcp.md: prerequisites,uvx everos-mcpsetup for Claude Code / Codex / JSON-configured hosts, the seven tools and the endpoints they call, and the behaviour specific to a self-hosted server (no session delete yet, ~1 s index lag after saving, trajectory quality gate).docs/index.mdlists the page; README anddocs/use-cases.mdswap the community card for the official package.everos initends with a third step pointing at the guide;everos server startlogs theuvx everos-mcpline with the rightEVEROS_BASE_URL.Refs #483 for the missing delete endpoint.
Area
Verification
make integrationwas not run: the change is documentation plus two informational CLI lines.Checklist
main.everos initoutput test still passes and no new assertion was added.).envfiles, dependency folders, or generated output.Notes for Reviewers
make check-cjkreports 10 pre-existing hits (README badge lines, use-case samples, a TUI demo string); none are in files this PR touches.🤖 Generated with Claude Code