Neo MCP Server
Run AI/ML tasks on Neo's remote backend directly from Claude Code, Cursor, Windsurf, Zed, VS Code, Continue.dev, and OpenAI Codex CLI.
Quickstart
pip install neo-mcp
neo-mcp setup
The setup wizard detects your editors, prompts for your Neo secret key, and writes all config files automatically.
No-install option — hosted endpoint
Point any MCP client directly at the hosted server:
| Field | Value |
|---|---|
| URL | https://mcp.heyneo.so/mcp |
| Header | Authorization: Bearer sk-v1-... |
Get your key from the Neo dashboard.
What you need
- Neo account with a secret key (
sk-v1-...) - Python 3.11+ or Docker
No VS Code extension required for task submission and tracking.
What Neo is for
Neo runs AI/ML work on a remote backend so it does not block your local machine:
- Training or fine-tuning models (classification, regression, NLP, computer vision)
- Building AI agents and multi-agent workflows
- RAG pipelines and vector search systems
- LLM integrations and prompt engineering pipelines
- ML data preprocessing and feature engineering
For general coding your assistant works locally — it only routes to Neo for AI/ML tasks.
Example session
You: "Train a fraud detection model on fraud.csv"
Assistant: Submitting to Neo…
⏳ Step 1: Load and preprocess fraud.csv
⏳ Step 2: Train XGBoost with cross-validation
✅ Step 3: Evaluate — AUC-ROC: 0.94
Done. Model saved to fraud_model.pkl
Available tools
| Tool | Description |
|---|---|
neo_submit_task |
Submit an AI/ML task. Returns a thread_id; background polling tracks progress. Supports wait_for_completion=true to block and return output directly for short tasks. |
neo_task_plan |
Show Neo's live step-by-step execution plan with per-step status, result summaries, and file paths. Use while RUNNING instead of fetching full messages. |
neo_task_status |
Check overall task status: RUNNING, WAITING_FOR_FEEDBACK, PAUSED, COMPLETED, TERMINATED. |
neo_get_messages |
Read the full conversation output once the task is COMPLETED. |
neo_send_feedback |
Reply to Neo when it asks a question (WAITING_FOR_FEEDBACK). |
neo_pause_task |
Pause a running task. |
neo_resume_task |
Resume a paused task. |
neo_stop_task |
Stop and clean up a task. |
How it works
neo_submit_task
│
├─ POST /v2/thread/init-chat-direct → thread_id
│ (deployment_type: vscode)
│
└─ background poller starts
│
├── GET /v2/thread/status/{thread_id} (every 3–15 s)
│ stores status + plan steps in memory
│
└── GET /v2/thread/thread-messages (on COMPLETED)
cached for neo_get_messages
All polling uses thread_id — works with NEO_SECRET_KEY auth only. No OAuth required.
Manual registration (Claude Code)
# Local — pip (recommended)
claude mcp add --scope user neo \
-e NEO_SECRET_KEY=sk-v1-... \
-- neo-mcp
# Remote — hosted endpoint (no local install)
claude mcp add --transport http neo https://mcp.heyneo.so/mcp \
--header "Authorization: Bearer sk-v1-..."
See docs/CLIENTS.md for all editors.
Configuration
| Variable | Required | Description |
|---|---|---|
NEO_SECRET_KEY |
Yes | Secret key (sk-v1-...) — sole auth token |
NEO_API_KEY |
No | Legacy access key, not used for auth |
NEO_DEPLOYMENT_ID |
No | Pin a specific VS Code extension deployment ID |
NEO_READ_ONLY |
No | true = expose only status/plan/message tools |
NEO_WORKSPACE_DIR |
No | Override working directory (useful in Docker) |
Troubleshooting
| Symptom | Fix |
|---|---|
Invalid API key (401) |
Re-check NEO_SECRET_KEY |
Trial or quota ended (403) |
Top up at Neo dashboard |
| Task submitted but no files written locally | Requires VS Code/Cursor extension running locally with an active daemon |
neo-mcp command not found |
Re-run pip install neo-mcp and check your PATH |
| Output truncated | Cap is ~20 000 tokens — use neo_task_plan for a concise summary |
| Status stuck on RUNNING | Call neo_task_plan to see which step is blocked |
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neo_mcp-0.2.0.tar.gz.
File metadata
- Download URL: neo_mcp-0.2.0.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
968df2435936f6410c98cdb3043727e09bdbfb4b8ff261481833883e9000a157
|
|
| MD5 |
617bc455c61343a0dd100b52561fe511
|
|
| BLAKE2b-256 |
ed7539fbc2c9066c096ceb395bf9b41da414699af0eda38230bd57d5e2d8c5c6
|
File details
Details for the file neo_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: neo_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 17.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0269f043633324a2880c06f4afa38c80abba6a35fe9e29a11aa074f6c14452e
|
|
| MD5 |
8d0a68ebbc7ccf75f9184420f4d9433b
|
|
| BLAKE2b-256 |
c7377f55e4fab3b268ab4bc4f47d50b1dd13633decd1832b4132336a137acbb8
|