# Axis

Axis gives coding agents a shared task board and file locks. Use it when several agents may work in the same repository.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 7
- Author: VirSanghavi
- License: AGPL-3.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/VirSanghavi/axis/tree/HEAD/packages/axis-server
- Updated: 2026-08-03
- HTML: https://affpapa.org/en/nevibecode/mcp/axis

## What it does

Axis connects agents to one project board. Before editing a file, an agent requests access with `propose_file_access`; another agent then sees that the path is held and why. The server exposes tools for jobs, locks, agent lists, shared context, code search, documentation search, and session finalization.

The hosted board coordinates agents running on different machines and in different clients. Axis derives the project from the active repository, so jobs and locks stay tied to that project. You can run `axis-server` locally, but that setup needs `AXIS_API_KEY` and `AXIS_API_SECRET`; `AXIS_ORG_ID` selects an organization when an account belongs to several. A local process cannot connect to the board without those credentials.

## Requirements
- Needs: Node.js (commands run via npx)
- Remote server: `https://useaxis.dev/api/mcp`
- Environment variables: `AXIS_API_KEY`, `AXIS_API_SECRET`, `AXIS_ORG_ID` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

1. **Platform CLI: remote server**
```bash
claude mcp add --transport http axis https://useaxis.dev/api/mcp
```

2. **Platform CLI**
```bash
claude mcp add --env AXIS_API_KEY=<AXIS_API_KEY> --env AXIS_API_SECRET=<AXIS_API_SECRET> --env AXIS_ORG_ID=<AXIS_ORG_ID> --transport stdio axis-server -- npx -y @virsanghavi/axis-server
```
Replace <…> with your own values

### Codex

1. **Platform CLI: remote server**
```bash
codex mcp add axis-server --url https://useaxis.dev/api/mcp
```

2. **Platform CLI**
```bash
codex mcp add axis-server --env AXIS_API_KEY=<AXIS_API_KEY> --env AXIS_API_SECRET=<AXIS_API_SECRET> --env AXIS_ORG_ID=<AXIS_ORG_ID> -- npx -y @virsanghavi/axis-server
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "axis-server": {
            "url": "https://useaxis.dev/api/mcp"
        }
    }
}
```
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "axis-server": {
            "command": "npx",
            "args": [
                "-y",
                "@virsanghavi/axis-server"
            ],
            "env": {
                "AXIS_API_KEY": "<AXIS_API_KEY>",
                "AXIS_API_SECRET": "<AXIS_API_SECRET>",
                "AXIS_ORG_ID": "<AXIS_ORG_ID>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "axis-server": {
            "type": "http",
            "url": "https://useaxis.dev/api/mcp"
        }
    }
}
```
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "axis-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@virsanghavi/axis-server"
            ],
            "env": {
                "AXIS_API_KEY": "<AXIS_API_KEY>",
                "AXIS_API_SECRET": "<AXIS_API_SECRET>",
                "AXIS_ORG_ID": "<AXIS_ORG_ID>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

1. **Platform CLI: remote server**
```bash
gemini mcp add -t http axis-server https://useaxis.dev/api/mcp
```

2. **Platform CLI**
```bash
gemini mcp add -e AXIS_API_KEY=<AXIS_API_KEY> -e AXIS_API_SECRET=<AXIS_API_SECRET> -e AXIS_ORG_ID=<AXIS_ORG_ID> axis-server npx -y @virsanghavi/axis-server
```
Replace <…> with your own values

## When to use it
- coordinate work claimed by multiple coding agents
- lock a file before an agent edits it
- inspect who holds a file and the stated reason
- share project context across agent sessions

## Example prompts
- Connect Axis and check whether another agent is using `src/auth.ts`.
- Claim the next available job, then reserve the files it requires.
- Finish the session and release the file locks.

## Similar
- [dual-axis-skill-reviewer](https://affpapa.org/en/nevibecode/skills/dual-axis-skill-reviewer.md) — skill · 3300 installs
- [git-workflow-and-versioning](https://affpapa.org/en/nevibecode/skills/git-workflow-and-versioning.md) — skill · 59500 installs
- [commit-history](https://affpapa.org/en/nevibecode/skills/commit-history.md) — skill · 13700 installs
- [commit-context](https://affpapa.org/en/nevibecode/skills/commit-context.md) — skill · 13700 installs
- [bmad-walkthrough](https://affpapa.org/en/nevibecode/skills/bmad-walkthrough.md) — skill · 11200 installs
- [do](https://affpapa.org/en/nevibecode/skills/do.md) — skill · 7000 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
