MCP server for AO/Arweave - query processes, send messages, spawn processes, execute Lua
npm install ao-mcp-serverMCP (Model Context Protocol) server for AO/Arweave that lets Claude Desktop, Cursor, and other MCP clients interact with AO processes.
- ao_query_process - Query process state (read-only, no wallet needed)
- ao_send_message - Send messages to processes (requires wallet)
- ao_spawn_process - Create new AO processes (requires wallet)
- ao_eval_lua - Execute Lua code in processes (requires wallet)
- ao_list_results - View process message history
``bash`
npm install -g ao-mcp-server
Or run directly with npx:
`bash`
npx ao-mcp-server
Add to your ~/.config/claude/claude_desktop_config.json (Linux/Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
`json`
{
"mcpServers": {
"ao": {
"command": "npx",
"args": ["ao-mcp-server"]
}
}
}
Add to your Cursor MCP settings:
`json`
{
"mcpServers": {
"ao": {
"command": "npx",
"args": ["ao-mcp-server"]
}
}
}
Query any AO process state:
``
Use ao_query_process with:
- process_id: <43-character-arweave-tx-id>
- action: Info
``
Use ao_send_message with:
- process_id:
- action: Transfer
- data: {"Recipient": "...", "Quantity": "100"}
- wallet_json:
``
Use ao_spawn_process with:
- name: MyProcess
- wallet_json:
``
Use ao_eval_lua with:
- process_id:
- code: return State
- wallet_json:
For operations that require signing (send, spawn, eval), you need to provide your Arweave JWK wallet as JSON. You can:
1. Pass directly - Include the wallet JSON in the wallet_json parameter
2. Use a file - Read from a wallet file and pass the contents
Example wallet structure:
`json`
{
"kty": "RSA",
"n": "...",
"e": "AQAB",
"d": "...",
...
}
- Module: Do_Uc2Sju_ffp6Ev0AnLVdPtot15rvMjP-a9VVaA5fM (aos Lua 5.3)_GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA
- Scheduler: (AO mainnet)
`bashClone the repository
git clone https://github.com/credentum/ao-mcp-server
cd ao-mcp-server
Architecture
`
ao-mcp-server/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # MCP server class
│ ├── config.ts # AO constants
│ └── tools/
│ ├── index.ts # Tool registry
│ ├── query-process.ts
│ ├── send-message.ts
│ ├── spawn-process.ts
│ ├── eval-lua.ts
│ └── list-results.ts
├── package.json
├── tsconfig.json
└── README.md
``- AO - Hyper-parallel computer on Arweave
- Arweave - Permanent data storage
- MCP - Model Context Protocol
MIT