Arkiv MCP Server
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., "@Arkiv MCP Serverfind all posts with score > 10 on Arkiv"
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.
Arkiv MCP Server
A Model Context Protocol (MCP) server that exposes Arkiv database chain querying capabilities to AI agents and applications.
Quick Start
1. Build
cd arkiv-mcp
npm install
npm run build2. Add to Claude Code
Run this from the arkiv-mcp directory:
claude mcp add arkiv -- node $(pwd)/dist/index.jsOr add it manually to ~/.claude/settings.json:
{
"mcpServers": {
"arkiv": {
"command": "node",
"args": ["/absolute/path/to/arkiv-mcp/dist/index.js"]
}
}
}For Claude Desktop, add the same block to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows).
3. Query the Kaolin testnet
Once connected, the query_entities tool is available. Example prompts:
"Query all entities on Arkiv"
"Find all Arkiv entities where
type = "post"andscore > 10""Show me entities owned by
0x1234...on the Arkiv testnet""Get the first 5 entities matching
status = "active", then paginate"
Related MCP server: MCP Database Manager
Features
Query entities from Arkiv database chains using a SQL-like filter expression
Full
arkiv_querysyntax: comparisons, logical operators, glob matching, synthetic attributesPagination support with cursor
Configurable return fields (attributes, metadata, payload)
Defaults to Kaolin testnet
Installation
cd arkiv-mcp
npm install
npm run build
# Or use tsx for development
npm run devUsage
Start the server
# Using default Kaolin testnet
npm start
# With custom node URL
npm start -- --node-url https://your-arkiv-node.rpc
# Or with tsx for development
npm run dev -- --node-url https://your-arkiv-node.rpcEnvironment Variables
Variable | Description | Required |
| Arkiv node RPC URL | No (defaults to Kaolin testnet) |
Command Line Options
Option | Description | Default |
| Arkiv node RPC URL | Kaolin testnet |
| Show help | - |
MCP Tool
query_entities
Query entities from an Arkiv database chain.
Parameters
Parameter | Type | Description | Default |
| string | Filter expression (see syntax below) |
|
| number | Maximum number of entities to return (max 200) | - |
| string | Pagination cursor from a previous response | - |
| boolean | Include attributes in results | true |
| boolean | Include metadata (owner, creator, expiry) in results | true |
| boolean | Include payload in results (base64 encoded) | true |
| number | Query state at a specific block number | - |
Filter Syntax
The filter parameter uses the arkiv_query expression language:
Operator | Description | Example |
| Equality |
|
| Not equal |
|
| Numeric range |
|
| Logical AND |
|
| Logical OR |
|
| Negation |
|
| Glob match |
|
| Negated glob |
|
Synthetic attributes (prefixed with $):
Attribute | Description |
| Match all entities |
| Current owner address |
| Original creator address (immutable) |
| Entity key |
Filter Examples
# All entities
$all
# By entity key
$key = "0xabc123..."
# By owner or creator
$owner = "0x1234567890abcdef..."
$creator = "0x1234567890abcdef..."
# Attribute equality
status = "active"
type = "post"
# Numeric range
score > 100
price >= 50 && price <= 200
# Compound
project = "myapp" && type = "post" && score > 10
# Glob matching
name ~ "draft*"
!(status = "deleted")Response Format
{
"entities": [
{
"key": "0x...",
"owner": "0x...",
"creator": "0x...",
"createdAtBlock": "12345",
"lastModifiedAtBlock": "12350",
"expiresAtBlock": "99999",
"contentType": "application/json",
"payload": "<base64-encoded bytes>",
"attributes": [
{ "key": "type", "value": "post" },
{ "key": "score", "value": 42 }
]
}
],
"cursor": "0x2a",
"blockNumber": "12350",
"count": 1
}Paginate by passing the returned cursor back as the cursor parameter in the next call. When cursor is absent, there are no more results.
Development
The server uses:
@arkiv-network/sdk — Arkiv TypeScript SDK
@modelcontextprotocol/sdk — MCP Server SDK
Project Structure
arkiv-mcp/
├── src/
│ └── index.ts # Main server implementation
├── package.json
├── tsconfig.json
└── README.mdLicense
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
- 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/arrivets/arkiv-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server