@rallycry/conveyor-mcp
v5.0.3
Published
Conveyor MCP server for Claude Code PM integration
Maintainers
Readme
@rallycry/conveyor-mcp
The Conveyor MCP server. It gives a coding agent — Claude Code, Codex, Cursor, Windsurf, VS Code, Claude Desktop — direct access to your Conveyor cards, plans, chat, tags, and pull requests.
Get your values
Open User Settings → Connect your coding agent (MCP) in the Conveyor web app. It generates a token and copies a pre-filled command or config block that already carries your API URL, token, and project id. Use that if you can.
To register the server by hand, replace the three placeholders below:
<api-url>— your Conveyor API host.<user-token>— your personal token from User Settings. Treat it as a secret.<project-id>— the project to work in. Omit this variable for multi-project mode, then passprojectIdper tool call after callinglist_projects.
Install
Claude Code (CLI)
claude mcp remove conveyor -s local 2>/dev/null;
claude mcp add conveyor -s local \
-e CONVEYOR_API_URL=<api-url> \
-e CONVEYOR_USER_TOKEN=<user-token> \
-e CONVEYOR_PROJECT_ID=<project-id> \
-- npx -y @rallycry/conveyor-mcp@latestThe claude mcp remove prefix makes the command idempotent. A bare
claude mcp add exits 1 with "already exists in local config" when a conveyor
server is already registered, which blocks a re-paste after a token rotation.
JSON config (Cursor, Windsurf, VS Code, Claude Desktop)
Merge this into your mcpServers block:
{
"mcpServers": {
"conveyor": {
"command": "npx",
"args": ["-y", "@rallycry/conveyor-mcp@latest"],
"env": {
"CONVEYOR_API_URL": "<api-url>",
"CONVEYOR_USER_TOKEN": "<user-token>",
"CONVEYOR_PROJECT_ID": "<project-id>"
}
}
}
}TOML config (Codex CLI, ~/.codex/config.toml)
[mcp_servers.conveyor]
command = "npx"
args = ["-y", "@rallycry/conveyor-mcp@latest"]
[mcp_servers.conveyor.env]
CONVEYOR_API_URL = "<api-url>"
CONVEYOR_USER_TOKEN = "<user-token>"
CONVEYOR_PROJECT_ID = "<project-id>"Environment variables
| Variable | Required | Purpose |
| ------------------------ | -------- | ------------------------------------------------------------------------------------ |
| CONVEYOR_API_URL | yes | Conveyor API host. |
| CONVEYOR_USER_TOKEN | yes | Your personal token. CONVEYOR_PROJECT_TOKEN is a backwards-compatible alias. |
| CONVEYOR_PROJECT_ID | no | Default project for unqualified tools. Omit it for multi-project mode. |
| CONVEYOR_SUBPROJECT_ID | no | Default board. Unqualified create_task/list_tasks/search_tasks target it. |
Why npx -y …@latest
Every form above launches the server through
npx -y @rallycry/conveyor-mcp@latest, so each start re-resolves the @latest
tag from the registry. Restarting the MCP server picks up newly published
versions, and there is no upgrade step to remember. The trade-off is a slightly
slower launch, because npx checks the registry each time.
The @latest tag is load-bearing. npx resolves a bare package name against the
local workspace first, so a bare npx @rallycry/conveyor-mcp inside a repo that
vendors a package of that name execs the unbuilt local copy and the server fails
to start. A version or tag spec forces registry resolution regardless of cwd.
Never shorten the command.
Verify
After you reload MCP servers, call verify_connection. It returns a plain
pass/fail plus, on failure, the failing layer and one next action. Then call
get_connection_context to confirm the account, project, and board are the ones
you intended.
License
MIT
