arena-mcp
Click on "Install 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., "@arena-mcpsearch for channels on minimalist graphic design"
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.
arena-mcp
An MCP server for Are.na — visual search for design references (curated channels, image blocks, authors) right from Claude Code.
Built on the Are.na v2 API (https://api.are.na/v2): v3 flags search as
Premium Only, while v2 offers free search and public content without a token.
Tools
Tool | What it does |
| Search: |
| Channel metadata by slug or id (+ description) |
| Blocks inside a channel (the images themselves, paginated) |
| Details of a single block + channels it was added to |
| Channels of a specific author |
Every result is a compact object with image (image URL) and arenaUrl
(link to are.na) — handy for collecting references.
Related MCP server: pinterest-vision-mcp
Token (optional, but recommended)
Public content is readable without a token. ARENA_TOKEN (a personal access
token from https://www.are.na/developers/personal-access-tokens) unlocks private
channels, block/user search (a WAF blocks it without a token), and higher rate
limits.
Installation
pnpm install && pnpm build
claude mcp add arena --scope user \
--env ARENA_TOKEN=<your-token> \
-- node /absolute/path/arena-mcp/dist/index.jsCheck: claude mcp get arena → Status: ✔ Connected.
Development
pnpm build— compile todist/pnpm typecheck— type checkingAPI client —
src/arena.ts, MCP wrapper —src/index.ts
Fresh-package gate (supply-chain) — via ~/.npmrc (minimum-release-age),
install with pnpm only.
License
MIT © Alex Vortep
Available Tools
5 toolsarena_blockAre.na blockA
Details of a single block (image/link/text) by id, plus the channels it was added to.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | numeric block id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does convey a read-only lookup and discloses that the result includes the block's details plus its channels. It does not mention error behavior, authentication needs, or what happens when a block id is invalid or has no channels.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It states the resource, the lookup mechanism, content types, and the additional channels payload efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description adequately explains what the response will contain: block details and associated channels. It could mention auth or error handling, but the low complexity and clear return scope keep it reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter, id, is already described as a numeric block id. The description adds little beyond restating that lookup is by id, so the schema does the necessary work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (a single block), distinguishes among content types (image/link/text), identifies the lookup key (by id), and notes the extra output (channels). It is easily differentiated from siblings like arena_channel_contents or arena_channel, which target channel-level data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'by id': an agent should call this when it has a specific block id and wants that block's details. However, there is no explicit guidance about when to prefer this over arena_channel_contents or arena_search, and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arena_channelAre.na channelB
Channel metadata (reference collections) by slug or id, including the description.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | channel slug (e.g. "onboarding-vw1svqs3rg8") or numeric id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full behavioral responsibility. It implies a read operation ('metadata') but doesn't explicitly state read-only, safety, or side effects. It also doesn't disclose error behavior or output format. The description adds minimal behavioral context beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key action ('Channel metadata'). No unnecessary words or filler. It's appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter metadata retrieval with no output schema, the description doesn't specify the return format (e.g., a single JSON object) or behavior for invalid ids. It's minimal but may be sufficient for an agent to call correctly. However, with no annotations or output schema, it could offer more clarity on the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single 'id' parameter with a clear description of slug or numeric id (100% coverage). The tool description adds no additional meaning beyond the schema. Since the schema already covers it, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves channel metadata by slug or id, including the description. It clearly names the resource ('channel metadata') and the lookup method, distinguishing it from sibling tools like arena_channel_contents (which likely fetches contents). However, the verb is implicit ('metadata' implies retrieval) rather than explicit like 'get', so it doesn't fully achieve a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There's no mention that this is for metadata only, not contents, or any conditions for preferring a slug vs numeric id. The description doesn't reference sibling tools or give exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arena_channel_contentsAre.na channel contentsA
Blocks inside a channel (the references themselves, with image URLs). Paginated. Use after arena_search to expand a collection you found.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | channel slug or id | |
| per | No | ||
| page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that results are paginated and that blocks include image URLs, which is useful context. However, it does not describe the full response shape, ordering, or any access considerations, leaving meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the core purpose, mentions pagination, and gives the primary usage context, making efficient use of the space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated list-by-id tool, the description gives enough to understand the basic operation and how it fits after arena_search. However, with no output schema and no annotation support, the agent is left without a clear picture of the return structure and full pagination behavior, so completeness is only moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description adds no parameter-level meaning. The id parameter is documented in the schema as 'channel slug or id', but per and page have no explanation in either place, and the description's mention of pagination does not compensate for the missing semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as blocks inside a channel, with image URLs, and contrasts it with the search step (arena_search). It lacks an explicit verb like 'list' or 'retrieve', but the meaning is still unambiguous and distinguishable from the sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit guidance to use this tool after arena_search to expand a collection, which helps an agent know when it fits in a workflow. It does not state when not to use it or mention the other sibling alternatives, but the primary usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arena_searchSearch Are.naB
Search Are.na (visual references: channels, image blocks, users). Returns compact objects with an image URL and an are.na link. Works without a token.
| Name | Required | Description | Default |
|---|---|---|---|
| per | No | ||
| page | No | ||
| type | No | What to search: all — everything, channels — collections, blocks — individual images/links, users — authors | all |
| query | Yes | Search query, e.g. "mobile onboarding" or "dashboard ui" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the behavioral transparency burden. It usefully discloses that no token is needed and that results are compact objects containing an image URL and an Are.na link, but it omits other behavioral details such as pagination behavior, response limits, or type-specific result differences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the tool's purpose, followed by output shape and auth requirement. Every sentence earns its place and there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool the description covers the main idea, but with no output schema and no annotations it stops short of full completeness. It omits pagination semantics, exact fields of the returned objects, and any error or empty-result behavior, which an agent would need for robust usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes 'query' and 'type' with helpful detail, but schema coverage is only 50%. The description adds no information about the pagination parameters 'per' and 'page', which remain undocumented in both the schema and the description, so the agent gets no semantic guidance for those parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Search') and a clear resource ('Are.na'), and scopes it to visual references: channels, image blocks, and users. It distinguishes itself from the sibling tools by presenting a broad search over those three categories, though it does not explicitly name any sibling or contrast itself with direct-fetch tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as arena_block, arena_channel, or arena_channel_contents. The phrase 'Search Are.na' implies a query-driven use case, and 'Works without a token' gives some context, but there are no when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arena_user_channelsAre.na user channelsB
List a specific author's channels by slug or id — to dig through their collections.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | user slug or id | |
| per | No | ||
| page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only describes the listing action and gives no details about pagination, ordering, visibility, or response shape. There is no contradiction, but behavior beyond the basic operation is undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler; the core operation and purpose are front-loaded before the dash. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema or annotations, and the description omits pagination behavior and return context, so an agent lacks information for a complete call. For a three-parameter tool with two undocumented pagination options, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (id has a description); the description repeats that id accepts a slug or id but does not add meaning beyond the schema. It gives no guidance on 'per' or 'page', which remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('a specific author's channels') and identifies the input method ('by slug or id'), making the tool's function clear. It does not explicitly name sibling tools, but the resource scope distinguishes it from arena_channel and arena_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to dig through their collections' gives a clear intended use case for choosing this tool. It does not name exclusions or alternatives, but the context is enough to route an agent to this list endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
arena_block - First observed
arena_channel - First observed
arena_channel_contents - First observed
arena_search - First observed
arena_user_channels
TDQS
Each tool targets a distinct resource: search results, channel metadata, channel contents, individual blocks, and a user's channels. There is no meaningful overlap, and the intended workflow (search -> channel -> contents -> block) is clear.
All tool names follow the same arena_ + noun pattern with snake_case and the server prefix applied uniformly. Even though search is more action-like, the overall naming is predictable and easy to extrapolate.
Five tools is a well-scoped set for a read-only Are.na browsing server. Each tool covers a distinct primary object or action, and the count is neither bloated nor too thin for the apparent purpose.
The set covers the core read-only workflows: search, inspect channels, page through contents, view block details, and list a user's channels. Minor gaps exist, such as direct user profile metadata or broader discovery feeds, but they do not break the main usage flow.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- CanvaOAuthcom.canva.mcp
The Canva MCP server connects AI assistants (like Claude, ChatGPT, and Cursor) to Canva's API, enabling them to create and manage designs directly within chat conversations. Key capabilities include generating new designs from prompts, autofilling templates, searching and resizing existing designs, importing files from URLs, exporting designs as PDFs or images, and managing folders and comments without switching between tools.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Holiday photo MCP server: list and fetch personal holiday photos inline in Claude chat.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for AI-powered image, audio, and video generation, enabling media creation directly from Claude, Cursor, and other MCP clients.1164MIT
- FlicenseAqualityDmaintenanceMCP server that gives AI agents visual intelligence — search Pinterest, analyze images with LLM vision, build a semantic reference library, and retrieve by style or mood.61-
- AlicenseBqualityDmaintenanceAn MCP server that drives Anthropic's Claude Design from agentic coding CLIs, providing tools to create, generate, iterate, and export design systems without a browser.32MIT
- AlicenseBqualityCmaintenanceMCP server for Claude Code that provides Google text search, web content extraction, and image search with dual-platform (Google Images + Pinterest) and AI visual analysis with quality scoring.5MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vortep-dev/arena-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server