The Nosana MCP Server connects AI assistants (Claude, Cursor, Copilot, local LLMs, etc.) to the Nosana Network β a decentralized GPU marketplace.
AI assistants can deploy GPU jobs through simple natural-language commands: βDeploy a Llama 3.1 8B model on an NVIDIA 4090.β
- Overview
- Installation
- Environment Variables
- Running the MCP Server
- HTTP Mode
- Wallet Setup
- Integration with Claude MCP
- Available Tools
- Troubleshooting
- License
The server provides a full MCP interface into the Nosana Network:
- Deploy GPU jobs (LLMs, inference servers, containers)
- Browse GPU markets and pricing
- Create job definitions automatically from natural text
- Query job status and wallet balances
- Works with any MCP-compatible client (Claude/Copilot/Cursor/custom)
git clone https://github.com/HoomanDigital/nos-mcp.git
cd nos-mcp
npm installcp .env.example .envExample:
PORT=3000
KEYPAIR_PATH=/home/user/.config/solana/nosana.jsonSupports both KEYPAIR_PATH and PRIVATE_KEY.
npm run devRuns at:
http://localhost:3000/mcp
Best for MCP Inspector, browser clients, and debugging.
The server exposes a full MCP-over-HTTP endpoint.
npx @modelcontextprotocol/inspector http://localhost:3000/mcp{
"servers": {
"nos-mcp": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"solana_key": "YOUR_PRIVATE_KEY"
}
}
}
}HTTP mode = great for testing. STDIO mode = best for desktop-based LLM clients.
npm run stdioUsed by Claude Desktop, Cursor, Copilot, and any local LLM with MCP.
solana-keygen new --outfile ~/.config/solana/nosana.json
solana address --keypair ~/.config/solana/nosana.jsonPaths:
| OS | Path |
|---|---|
| macOS/Linux | ~/.config/solana/nosana.json |
| Windows | C:\Users\<name>\.config\solana\nosana.json |
If you have a 12-word or 24-word Solana recovery phrase, convert it into a keypair file:
solana-keygen recover 'prompt://?key=0/0' --outfile ~/.config/solana/nosana.jsonPaste your phrase when prompted. This creates the correct 64-byte keypair JSON required by Nosana MCP.
Add to claude_desktop_config.json:
{
"mcpServers": {
"nosana-mcp": {
"command": "node",
"args": ["${HOME}/path/to/nos-mcp/dist/stdio-mcp.js"],
"env": {
"KEYPAIR_PATH": "${HOME}/.config/solana/nosana.json",
"PRIVATE_KEY": ""
}
}
}
}Development alternative:
{
"mcpServers": {
"nosana-mcp": {
"stdio": "npx tsx src/stdio-mcp.ts"
}
}
}node dist/stdio-mcp.jsExpected:
π Nosana MCP Server started (listening on stdio)
Restart Claude to load it.
| Tool | Description |
|---|---|
listAvailableGpus |
List all GPU markets with specs & pricing |
getWalletBalance |
Fetch SOL/NOS balance + USD estimate |
estimateJobCost |
Estimate cost for a job given market + duration |
getMarket |
Get detailed info for a specific GPU market |
getJob |
Fetch full details for a single job |
getAllJobs |
List all jobs created by a wallet (filter by state) |
createJob |
Create and submit a new job to Nosana |
stopJob |
Stop/cancel an existing job |
extendJob |
Extend a running jobβs timeout |
getModels |
Model recommendation engine (query β ranked models) |
getPrompt |
Generate full prompt/schema to build a job definition |
HTTP:
npx @modelcontextprotocol/inspector http://localhost:3000/mcpSTDIO:
npx @modelcontextprotocol/inspector npm run stdio| Issue | Fix |
|---|---|
| Invalid keypair | Must be 64-byte JSON or Base58 |
| Missing file | Check KEYPAIR_PATH |
| Claude not loading MCP | Restart Claude |
| Permission denied | Ensure ~/.config/solana readable |
- βDeploy a Llama 3.1 8B model on a 4090.β
- βList all GPUs under $0.15/hr.β
- βEstimate cost for 10-minute inference job.β
- βWhatβs my wallet balance?β
MIT License β see LICENSE
