@davepi/mcp
v1.0.2
Published
One-line MCP wiring for dAvePi. Connects Claude Desktop / Cursor / Claude Code to a dAvePi instance — either a remote HTTP /mcp endpoint or a local stdio session.
Downloads
67
Maintainers
Readme
@davepi/mcp
One-line MCP wiring for dAvePi. Connects
Claude Desktop / Cursor / Claude Code to a dAvePi instance — either
a remote HTTP /mcp endpoint or a local stdio session.
Install / wire it up
You don't install — npx -y runs the latest published version on
demand.
Claude Code (.mcp.json in the project root)
{
"mcpServers": {
"davepi": {
"command": "npx",
"args": ["-y", "@davepi/mcp"],
"env": {
"DAVEPI_URL": "http://localhost:5050",
"DAVEPI_TOKEN": "dpk_...your-api-key"
}
}
}
}Claude Desktop (claude_desktop_config.json)
macOS path: ~/Library/Application Support/Claude/claude_desktop_config.json.
{
"mcpServers": {
"davepi": {
"command": "npx",
"args": ["-y", "@davepi/mcp"],
"env": {
"DAVEPI_URL": "https://api.example.com",
"DAVEPI_TOKEN": "dpk_...your-api-key"
}
}
}
}Cursor (.cursor/mcp.json or settings)
{
"mcpServers": {
"davepi": {
"command": "npx",
"args": ["-y", "@davepi/mcp"],
"env": {
"DAVEPI_URL": "https://api.example.com",
"DAVEPI_TOKEN": "dpk_...your-api-key"
}
}
}
}Modes
The wrapper picks one mode based on environment:
| Env vars | Mode | Use when |
|----------|------|----------|
| DAVEPI_URL + DAVEPI_TOKEN | HTTP-proxy | dAvePi is hosted (production deployment, demo instance, etc.) and the agent runs on a developer's laptop. |
| DAVEPI_SCHEMAS (or no env vars in a project with a schema/versions/ directory) | Local-stdio | dAvePi is installed in the same project as the agent's working tree (npm install davepi). The wrapper spawns davepi mcp and pipes its stdio. |
Both modes are pure JSON-RPC pumps — neither holds any MCP-protocol state, so a future MCP version doesn't require touching this package.
Issuing a credential for DAVEPI_TOKEN
Recommended: a dpk_ API key — long-lived, revocable, roles frozen
at mint. Mint it while logged in as the user the MCP session should act
as:
curl -X POST "$DAVEPI_URL/api/auth/api-keys" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{ "name": "mcp", "scopes": ["read", "write"] }'
# → { "id": "...", "prefix": "dpk_...", "key": "dpk_...<shown once>" }Set the returned key as DAVEPI_TOKEN. Revoke it any time with
DELETE $DAVEPI_URL/api/auth/api-keys/:id.
Legacy: a self-signed JWT. Works, but it expires — a long-lived MCP
session bound to it dies when it lapses. Prefer an API key. Run this on
the dAvePi server (or anywhere with TOKEN_KEY):
node -e '
const jwt = require("jsonwebtoken");
console.log(jwt.sign(
{ user_id: "<your-user-id>", roles: ["user"] },
process.env.TOKEN_KEY,
{ expiresIn: "30d" }
));
'Treat either credential like any other secret.
Documentation
- Surfaces → MCP server — the full MCP tool surface dAvePi exposes.
- Concepts → Why agents come first — why MCP is first-class.
License
ISC. Source: https://github.com/projik/davepi/tree/main/packages/mcp.
