This is the inbound direction — external clients calling Neo. If you instead want Neo’s agents to call your MCP servers as tools during a task, see MCP Tools.
Prerequisites
- A Neo API key (prefix
neo_sk_), created under Settings → API Key (see API Key). - An MCP-compatible client — Cursor, Claude Code, Claude Desktop, or any client that supports streamable HTTP.
Connection details
Use these values in any MCP client that supports a remote HTTP server.Connect your client
- Cursor
- Claude Code
- Claude Desktop
- Any MCP client
Add Neo to your Cursor MCP configuration (Reload Cursor, then open Settings → MCP and confirm the neo server shows a green status with its tools listed.
~/.cursor/mcp.json for all projects, or .cursor/mcp.json inside a project):Authentication
Authentication uses your Neo API key only. Send it with every request in theX-Api-Key header:
neo_sk_ prefix and is created under Settings → API Key (API Key). If it’s missing or invalid, requests fail with an authentication error. Keep the key in your client’s header config — never in the URL.
Available tools
Once connected, your client gets a set of tools that follow the natural loop of an assessment — start it, watch it, read the findings, and pull the files.get_task views
get_task takes a task_id and an optional view (defaults to overview). Each view returns a different slice of the task.
create_task parameters
create_task is the main entry point. Only task is required; everything else has a sensible default.
create_task returns as soon as the task is created and queued; Neo keeps working in the background. Use get_task with the returned task ID to follow progress, then get_issues to read the findings. Neo tasks run for minutes — avoid polling in a tight loop.Resources
Resources let clients browse Neo data without invoking a tool. They return JSON.Example workflow
A typical end-to-end loop from an MCP client:1
Start a task
Call
create_task with task: "Test https://staging.example.com for authentication and authorization flaws". Note the returned task_id. (Optionally call list_capabilities first to pick a specific agent, model, or project.)2
Monitor progress
Call
get_task with the task_id and view: "overview" to check status and the latest response, or view: "logs" to follow each step. Neo tasks run for minutes, so check periodically rather than in a tight loop.3
Read the findings
Call
get_issues with task_id to list the validated findings — each with severity, target, and remediation. Use get_task with view: "report" for the narrative summary.4
Collect artifacts
Call
get_task with view: "files" to find generated reports or screenshots, then pass a returned file_key to get_file to read it inline or get a shareable download link.5
Wrap up
Use
manage_task with action: "rename" for easy lookup later, or action: "delete" if it was a throwaway run.File keys
get_file operates on file keys — the full workspace path of a file, always starting with workspace/. Task artifacts live under workspace/tasks/{task_id}/. A typical key looks like:
get_task with view: "files" returns the exact key for every file, so the usual pattern is to list first, then pass a returned key to get_file.
Troubleshooting
The client connects but shows no tools
The client connects but shows no tools
Make sure the URL ends in
/mcp and your client is configured for the streamable HTTP transport. After fixing the config, fully reload the client so it re-runs MCP discovery.Every call returns an authentication error
Every call returns an authentication error
Confirm the
X-Api-Key header is set and the value starts with neo_sk_. Keys created in the wrong team, revoked, or rotated will fail — generate a fresh one under Settings → API Key and update your client.File tools say the sandbox isn't available
File tools say the sandbox isn't available
Workspace files are created during task execution. Run at least one task first so your workspace is initialized, then retry
get_task with view: "files".create_task times out
create_task times out
create_task waits for the task to be registered before returning. A timeout usually means the upstream Neo API or agent is briefly unavailable — retry, and check your account has sufficient credits and Neo access.Security notes
- Stateless by design. The MCP server holds no credentials or sessions; your key is used only to authenticate the current request to the Neo API.
- Scoped to your account. Tools only ever act on tasks and files your API key can access.
- HTTPS only. Always connect over
https://, and keep your key in headers rather than URLs.

