@aredotna/mcp
MCP server for the Are.na API, providing 40+ auto-generated tools and custom composite tools to interact with Are.na channels, blocks, and users.
README
@aredotna/mcp
MCP server for the Are.na API. Provides 40+ auto-generated tools from the OpenAPI spec plus custom composite tools.
Quick start
The hosted server is available at https://mcp.are.na/mcp.
Claude Desktop (connector)
The easiest way to connect. Go to Settings > Connectors > Add custom connector and enter:
- Name:
Are.na - Remote MCP server URL:
https://mcp.are.na/mcp
Leave the OAuth Client ID and Secret fields blank — the server supports Dynamic Client Registration. Click Add, then authorize with your Are.na account when prompted.
Claude Desktop (config file)
You can also add the server directly in claude_desktop_config.json. If your version supports the url format:
{
"mcpServers": {
"arena": {
"type": "http",
"url": "https://mcp.are.na/mcp",
"headers": {
"Authorization": "Bearer YOUR_ARENA_TOKEN"
}
}
}
}
Get a personal access token from are.na/settings/personal-access-tokens.
If your version only supports command (stdio), you can use mcp-proxy to bridge to the remote server. Install uv first (brew install uv), then:
{
"mcpServers": {
"arena": {
"command": "/opt/homebrew/bin/uvx",
"args": [
"mcp-proxy",
"--transport",
"streamablehttp",
"-H",
"Authorization",
"Bearer YOUR_ARENA_TOKEN",
"https://mcp.are.na/mcp"
]
}
}
}
Note: Use the full path to
uvx(e.g./opt/homebrew/bin/uvx). Claude Desktop may not haveuvxon itsPATH.
Claude Desktop (local)
To run the server locally via stdio, clone the repo, run yarn install && yarn generate, then use absolute paths in your config:
{
"mcpServers": {
"arena": {
"command": "/path/to/arena/mcp/node_modules/.bin/tsx",
"args": ["/path/to/arena/mcp/src/transports/stdio.ts"],
"env": {
"ARENA_ACCESS_TOKEN": "YOUR_ARENA_TOKEN"
}
}
}
}
Note: You must use absolute paths for both
commandandargs. Claude Desktop does not reliably resolve relative paths or respectcwd. Usingyarn devor barenpx tsxwill not work —yarnwrites to stdout, andnpxwithout a cwd cannot find the script.
Claude Code
claude mcp add --transport http arena https://mcp.are.na/mcp
Authenticate via /mcp when prompted.
Codex Desktop
In the Codex desktop app, open Settings > MCP servers > Add custom MCP.
Use the hosted server with OAuth, the same as the Claude connector flow. Select Streamable HTTP and enter:
- Name:
Are.na - URL:
https://mcp.are.na/mcp
Leave environment variables and passthrough blank. Save the server, then click Authenticate from the MCP server settings when it appears. The server supports Dynamic Client Registration, so you do not need to create or paste an OAuth client ID or secret.
If you need to run the server locally over stdio instead, clone the repo, run yarn install && yarn generate, then add a custom MCP with:
- Name:
Are.na - Transport:
STDIO - Command to launch:
/path/to/arena/mcp/node_modules/.bin/tsx - Arguments:
/path/to/arena/mcp/src/transports/stdio.ts - Environment variables:
ARENA_ACCESS_TOKEN=YOUR_ARENA_TOKEN - Working directory:
/path/to/arena/mcp
Use absolute paths for the command, argument, and working directory. The local stdio server uses a personal access token instead of OAuth; get one from are.na/settings/personal-access-tokens.
Codex CLI
Codex CLI stores MCP servers in ~/.codex/config.toml. Add the hosted server:
[mcp_servers.arena]
url = "https://mcp.are.na/mcp"
Then authenticate it:
codex mcp login arena
You can check the configured server from the Codex TUI with /mcp.
Cursor
Add the server under Settings > MCP Servers with URL https://mcp.are.na/mcp and an Authorization: Bearer YOUR_ARENA_TOKEN header.
Development
git clone https://github.com/aredotna/mcp.git
cd mcp
yarn install
yarn generate # fetch OpenAPI spec, generate types + tools
Running locally
stdio — single-user, for use with Claude Desktop or other MCP clients:
ARENA_ACCESS_TOKEN=your-token yarn dev
HTTP — runs a local Cloudflare Workers dev server:
cp .dev.vars.example .dev.vars
# Set your tokens in .dev.vars (see .dev.vars.example)
yarn dev:http
The HTTP server requires a KV namespace for OAuth state. For local development, Wrangler provides an in-memory KV automatically. For production, create a KV namespace and update the id in wrangler.toml (KV is included in Cloudflare's free tier):
npx wrangler kv namespace create OAUTH_KV
You also need to set the Are.na OAuth application credentials as secrets:
npx wrangler secret put ARENA_OAUTH_CLIENT_ID
npx wrangler secret put ARENA_OAUTH_CLIENT_SECRET
Register your OAuth application at are.na/developers/oauth/applications with redirect URI https://mcp.are.na/callback (or http://127.0.0.1:8787/callback for local dev).
Testing
yarn typecheck
yarn test
Formatting
yarn format
Prettier runs automatically on staged files via a pre-commit hook.
Deployment
Pushes to main are automatically deployed to Cloudflare Workers via GitHub Actions.
To deploy manually:
yarn deploy
Requires CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID (set as GitHub repo secrets for CI, or via wrangler login locally).
Adding custom tools
Create a file in src/tools/custom/, export a register function, and add it to src/tools/index.ts. See src/tools/custom/search-and-connect.ts for an example.
Regenerating tools
When the Are.na API spec changes:
yarn generate
This fetches the latest spec and regenerates TypeScript types and tool registrations.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.