Agent Board is a SQLite-backed Jira-like project-management service with a
command-line interface and MCP transports for stdio and Streamable HTTP. The
full 35-table domain in db/schema.sql—projects, workflows,
issues, boards, sprints, releases, custom fields, audit events, and agent
runs—is created automatically in SQLite.
It requires Node.js 22.5 or newer and uses the built-in node:sqlite module,
so there are no runtime dependencies to install.
Start the Jira-style browser interface with:
npm run webOpen http://127.0.0.1:8080. Set PORT, HOST, or AGENT_BOARD_DB to
override the listener or SQLite database. The UI supports the same workspace,
project, issue, workflow, comment, board, sprint, and generic record operations
as the MCP server, including schema-driven access to all 35 tables.
The first person to register creates the initial workspace and receives the
admin role. Later registrations join the existing instance as members.
Passwords are hashed with scrypt, and browser sessions use expiring opaque
tokens in HTTP-only, SameSite cookies. Board JSON APIs require an authenticated
session; the health endpoint and MCP transports remain independent.
The database defaults to db/agent-board.sqlite. Select another
database with --db <path> or AGENT_BOARD_DB:
node bin/agent-board.js --db /absolute/path/board.sqlite list projectsOn the first default startup, an existing .agent-board/data.json is imported
transactionally into db/agent-board.sqlite and renamed to
data.json.migrated. SQLite is the only active storage format after migration.
--data and AGENT_BOARD_DATA remain aliases for a SQLite database path so
older launch configurations do not fail.
Every table can be managed with generic commands:
node bin/agent-board.js create organizations --name "Acme"
node bin/agent-board.js create projects \
--organization-id <organization-uuid> --project-key WEB --name "Website"
node bin/agent-board.js list projects --organization-id <organization-uuid>
node bin/agent-board.js get projects <project-uuid>
node bin/agent-board.js update projects <project-uuid> --description "Public site"
node bin/agent-board.js delete projects <project-uuid>Values accept strings, null, true, false, or structured JSON prefixed
with json:. Run node bin/agent-board.js --help for complete usage.
Configure an MCP client to launch the stdio transport:
{
"mcpServers": {
"agent-board": {
"command": "node",
"args": ["/absolute/path/to/agent-board/bin/agent-board.js", "mcp"],
"env": {
"AGENT_BOARD_DB": "/absolute/path/to/agent-board.sqlite"
}
}
}
}The server exposes project-management tools designed for agents:
setup_workspacecreates or idempotently configures an organization with default issue types, priorities, statuses, and workflow.create_projectcreates a keyed project, workflow mappings, and board.create_issue,get_issue,search_issues,update_issue, andtransition_issuemanage a numbered backlog with keys such asWEB-123.add_commentrecords issue discussion and audit history.create_sprint,add_issues_to_sprint,start_sprint, andclose_sprintmanage Scrum planning.get_boardreturns columns, mapped statuses, sprints, and issues.get_schema,list_records,get_record,create_record,update_record, anddelete_recordprovide advanced access to every schema table.
Start the HTTP transport:
node bin/agent-board.js mcp-httpThe endpoint defaults to http://127.0.0.1:3000/mcp. Override it with
--host, --port, and --path, or AGENT_BOARD_HOST, AGENT_BOARD_PORT,
and AGENT_BOARD_PATH. The stateless transport accepts MCP POST requests and
supports protocol versions 2025-11-25, 2025-06-18, 2025-03-26, and 2024-11-05.
The server binds to localhost and rejects cross-origin browser requests by
default. Add trusted origins with --allowed-origin or
AGENT_BOARD_ALLOWED_ORIGINS. Set AGENT_BOARD_TOKEN to require a bearer
token. Use TLS when exposing the endpoint beyond localhost.
npm test