Toolhive MCP is a hosted HTTP MCP server for Cloudflare Workers. It turns a practical bundle of MCP tools into one remote /mcp endpoint so you can connect Claude-compatible clients without running a local stdio server.
Use Toolhive MCP when you want:
- one public MCP endpoint instead of a local daemon
- Cloudflare Workers deployment with low operational overhead
- Anthropic-compatible canonical tool names such as
context7_query_docsandtavily_search - a manifest-driven tool surface that stays aligned with the actual server implementation
Copy this demo endpoint directly into your MCP client:
https://mcp.awsl.app/mcp?key=elysia
Additional public endpoints:
- Health:
https://mcp.awsl.app/healthz - Ready:
https://mcp.awsl.app/readyz - Version:
https://mcp.awsl.app/version
All examples below use the live demo endpoint:
https://mcp.awsl.app/mcp?key=elysia
Add a remote MCP server in Claude and use:
- URL:
https://mcp.awsl.app/mcp?key=elysia - Transport: Streamable HTTP / HTTP MCP
If your Claude build asks for headers instead of a full URL with query params, use https://mcp.awsl.app/mcp and send one of the supported auth options from the next section.
In Cursor MCP settings, add a remote server pointing to:
{
"mcpServers": {
"toolhive-mcp": {
"url": "https://mcp.awsl.app/mcp?key=elysia"
}
}
}In Cline's MCP server configuration, add:
{
"mcpServers": {
"toolhive-mcp": {
"url": "https://mcp.awsl.app/mcp?key=elysia"
}
}
}In Cherry Studio, create a custom MCP server with:
- Name:
toolhive-mcp - Type: Remote / HTTP MCP
- URL:
https://mcp.awsl.app/mcp?key=elysia
For Codex clients that accept remote MCP configuration, use:
{
"mcp_servers": {
"toolhive-mcp": {
"url": "https://mcp.awsl.app/mcp?key=elysia"
}
}
}Toolhive MCP currently supports these authentication styles:
- Bearer
- x-api-key / API key
- query
key
Examples:
Authorization: Bearer elysiax-api-key: elysiahttps://mcp.awsl.app/mcp?key=elysia
This release uses only Bearer, x-api-key / API key, or query key authentication.
For your own deployment, point clients to:
- MCP:
https://<your-worker-domain>/mcp - Health:
https://<your-worker-domain>/healthz - Ready:
https://<your-worker-domain>/readyz - Version:
https://<your-worker-domain>/version
Repository: https://github.com/DoingDog/toolhive-mcp
Manual deployment:
npm install
npm run deployThe project uses the repository's existing wrangler.jsonc configuration.
Only configure the providers you want to expose:
npx wrangler secret put MCP_AUTH_KEYS
npx wrangler secret put TAVILY_API_KEYS
npx wrangler secret put CONTEXT7_API_KEYS
npx wrangler secret put EXA_API_KEYS
npx wrangler secret put UNSPLASH_ACCESS_KEYS
npx wrangler secret put PUREMD_API_KEYS
npx wrangler secret put PAPER_SEARCH_MCP_UNPAYWALL_EMAILSKey notes:
MCP_AUTH_KEYSenables auth checks for protected/mcpmethods only after you configure it.MCP_AUTH_KEYSaccepts one key or a comma-separated list of keys. Valid characters are letters, numbers,_, and-.PAPER_SEARCH_MCP_UNPAYWALL_EMAILSis used for Unpaywall access and thepaper_get_open_accesstool.PAPER_SEARCH_MCP_UNPAYWALL_EMAILSaccepts one email or a comma-separated list of emails.- Provider key secrets can contain one key or a comma-separated list of keys.
The block below is generated from the manifest and should be refreshed with npm run render:readme.
Demo endpoint: https://mcp.awsl.app/mcp?key=elysia
Supported auth:
- Bearer
- x-api-key / API key
- query
key
Manifest-backed tool surface:
- Native tools:
weather,time,whoami,webfetch,calc - Paper tools:
paper_search,paper_get_details,paper_get_related - Env-gated paper tool:
paper_get_open_access - External tools:
iplookup - Env-gated external tools:
exa_search,tavily_search,tavily_extract,tavily_crawl,context7_resolve_library_id,context7_query_docs,puremd_extract,unsplash_search_photos - Developer utilities:
devutils_base64_encode,devutils_base64_decode,devutils_hash,devutils_uuid,devutils_jwt_decode,devutils_json_format,devutils_json_validate,devutils_regex_test,devutils_url_parse,devutils_timestamp_convert,devutils_ip_validate,devutils_cidr_calculate,devutils_text_stats,devutils_slugify,devutils_case_convert
Built-in resources:
resource://toolhive/overview(text/markdown, static)resource://toolhive/auth(text/markdown, static)resource://toolhive/catalog(text/markdown, static)resource://toolhive/runtime/enabled(application/json, runtime)
Built-in prompts:
choose_tool_for_task,research_with_sources,developer_utility_workflow- Run
npm run render:readmeto refresh this block fromsrc/mcp/tool-manifest.ts,src/mcp/resource-manifest.ts, andsrc/mcp/prompt-manifest.ts.
Local development workflow:
npm install
npm test
npm run typecheck
npm run devUseful notes:
npm run devstarts the Worker locally through Wranglernpm testruns the Vitest suitenpm run typecheckruns TypeScript without emitting build outputGET /versionreports runtime package metadata frompackage.json
Domain-related tools are intentionally disabled in this release.
The codebase still contains domain integration code for possible future re-enable, but the released MCP surface does not expose any domain_* tools.
News tools are intentionally disabled in this release.
The codebase still contains news integration code for possible future re-enable, but the released MCP surface does not expose any news_* tools.
This project is released under the 0BSD license. See LICENSE.