alcove-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@alcove-mcpsearch for pads containing 'quarterly planning'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
alcove-mcp
alcove-mcp is a small, read-only MCP adapter that lets MCP hosts and agents
such as Hermes access Alcove through its public /api/v1 HTTP API.
The adapter never imports Alcove code and never accesses Alcove's PostgreSQL, Redis, filesystem, or internal services. Its only data path is:
MCP host -> alcove-mcp -> HTTP /api/v1 -> Alcove authorization and APIV0 surface
The server exposes exactly four tools:
MCP tool | Alcove endpoint | Required scope |
|
|
|
|
|
|
|
|
|
|
|
|
At startup, the client performs an internal GET /api/v1/me identity/readiness
check. It is deliberately not exposed as an MCP tool.
V0 has no writing, deleting, sharing, shell, terminal, filesystem, administration, token-management, or implicit fallback capabilities.
Related MCP server: outline-mcp
Architecture
src/config/ environment validation and URL/token configuration
src/alcove/ HTTP client, DTO schemas, and safe upstream errors
src/mcp/ MCP server factory and four tool registrations
src/main.ts stdio entrypoint
tests/ config, HTTP mapping, MCP validation, and security testsThe MCP SDK validates tool arguments from Zod schemas before handlers run. The Alcove client validates successful HTTP responses against Zod DTOs. The adapter does not reproduce Alcove authorization or membership rules: 401, 403, and inaccessible-pad behavior are returned by Alcove and mapped to safe MCP errors.
Requirements
Node.js 24 LTS (the reference runtime and CI version)
npm
An Alcove deployment exposing
/api/v1An Alcove API token with only
me:read,pads:read, andsearch:read
Node.js >=24 is declared in package.json.
Installation
npm ci
npm run buildFor local development without building:
npm run devConfiguration
Copy .env.example to a local environment file or export the variables in
the process environment:
export ALCOVE_URL=http://127.0.0.1:8000
export ALCOVE_API_TOKEN='your-read-only-token'ALCOVE_URL is the Alcove base URL. The adapter appends /api/v1.
Credentials, query strings, fragments, unsupported protocols, empty tokens,
and tokens containing whitespace are rejected.
The token is a secret. Do not commit it, put it in a URL, include it in a fixture, or paste it into logs or MCP configuration checked into source control.
Creating a read-only Alcove token
Create an Alcove API token through the authenticated Alcove web interface or the API-token management flow in Alcove. Configure only these scopes:
me:read
pads:read
search:readThe corresponding Alcove API operation is POST /api/v1/tokens and requires
an interactive browser session. Its request can contain a name, the three
scopes above, and an expiry such as 90 days. The creation response contains
the raw token once; never print that response in a shell transcript or CI log.
Do not grant pads:write, pads:share, or any administrative scope. Store
the raw token only in the secret environment of the MCP host. Alcove returns
the raw token only when it is created; if it is lost, revoke it and create a
new one.
Running over stdio
The built server is launched with:
ALCOVE_URL=http://127.0.0.1:8000 \
ALCOVE_API_TOKEN='your-read-only-token' \
node dist/main.jsDuring development, MCP hosts can launch:
npx tsx src/main.tsstdout is exclusively the MCP JSON-RPC protocol channel. The server does not write banners or diagnostics to stdout. Transport errors, when any, go to stderr.
MCP host configuration
An MCP host should launch the server as a child process and pass the secrets through its environment. For example, a generic stdio configuration is:
{
"command": "node",
"args": ["/absolute/path/to/alcove-mcp/dist/main.js"],
"env": {
"ALCOVE_URL": "http://127.0.0.1:8000",
"ALCOVE_API_TOKEN": "${ALCOVE_API_TOKEN}"
}
}The exact wrapper key differs between MCP hosts. The important properties are the command, arguments, and environment variables; no custom MCP protocol implementation is required.
Security model
Alcove remains the source of truth for authentication, scopes, memberships, and pad authorization.
The Bearer token is sent only in the HTTP
Authorizationheader.HTTP redirects are disabled so a token cannot be forwarded to another host.
Response bodies are validated and upstream bodies are not copied into error messages.
Invalid-token and revoked-token responses share the same safe authentication error.
Inaccessible pads are handled through Alcove's 404 response and are not distinguished locally.
No data is persisted or cached by this adapter.
Only the four explicit read-only tools are registered.
Verification
npm run build
npm run typecheck
npm run lint
npm run test
npm run test:stdiotest:stdio starts the real server entrypoint as a child process and uses the
official MCP client SDK to perform the stdio handshake, tools/list, and a
tools/call. This also proves that stray stdout output would break the MCP
conversation. It verifies that the configured test token does not appear on
stderr.
The MCP Inspector can be used manually after building:
npx @modelcontextprotocol/inspector \
env ALCOVE_URL=http://127.0.0.1:8000 \
ALCOVE_API_TOKEN="$ALCOVE_API_TOKEN" \
node dist/main.jsV0 limitations
stdio is the only transport currently wired.
There are no write, sharing, deletion, administration, shell, filesystem, terminal, or resource/prompt surfaces.
The adapter does not implement authorization or membership logic.
The adapter does not refresh, create, revoke, or persist Alcove tokens.
A remote deployment can be added later using the same server factory and an official Streamable HTTP transport.
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Search and retrieve published Alkemata articles, pages, and guidance through a read-only MCP server.
Read-only MCP access to authorized Vocci sessions, notes, files, and memory search.
Read-only MCP tools for AI agent discovery, structured resources, and NIULAI information.
Read-only MCP for AI usage profiles, leaderboards, stats, and docs; no writes or private data.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceProvides read-only access to TrustLayer's public API, enabling users to query and retrieve data about parties, documents, projects, and other TrustLayer entities through MCP-compatible tools.MIT
- AlicenseNot gradedqualityCmaintenanceEnables read-only search and retrieval of Outline wiki content, including documents, collections, revisions, and comments, via MCP tools.15 npm3MIT
- AlicenseAqualityCmaintenanceEnables an MCP-capable assistant to read-only access XWiki spaces, pages, and attachments through the XWiki REST API.669 npmApache 2.0
- AlicenseAqualityBmaintenanceEnables read-only investigative research across any Aleph instance, providing ten GET-only tools for searching entities, exploring relationships, discovering datasets, and retrieving document text through MCP clients.10MIT