{"_id":"@alacrity-ai/kbrelaymcp","_rev":"10-b096c1d8b071b5a86760358608702bfa","name":"@alacrity-ai/kbrelaymcp","dist-tags":{"latest":"0.8.1"},"versions":{"0.1.0":{"name":"@alacrity-ai/kbrelaymcp","version":"0.1.0","keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"license":"MIT","_id":"@alacrity-ai/kbrelaymcp@0.1.0","maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"bin":{"kbrelaymcp":"bin/kbrelaymcp.mjs"},"dist":{"shasum":"69cbb7ace6d2a1dd7ce9da1aed186e2461fe1abe","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaymcp/-/kbrelaymcp-0.1.0.tgz","fileCount":15,"integrity":"sha512-6ggo7hq4SwELWgZNjukCfucv+KsPtGVgoYOsBqpBNjylf0iMe0EZv82YliL9S7XZj6NWP1FScIStvF2WZTQyIQ==","signatures":[{"sig":"MEQCIDpFVrNuJboNVVXsr5oyOxtoOJ+OnmMDfXgIONFrLs5GAiBcpE0shX7MgeHKGLduODcZNpQ/Y2P8JbdN6O6V/OD1uA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20196},"type":"module","engines":{"node":">=20"},"private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"_npmVersion":"11.13.0","description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"zod":"^3.24.1","zod-to-json-schema":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"~5.9.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kbrelaymcp_0.1.0_1782944006049_0.41033717874192144","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@alacrity-ai/kbrelaymcp","version":"0.2.0","keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"license":"MIT","_id":"@alacrity-ai/kbrelaymcp@0.2.0","maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"bin":{"kbrelaymcp":"bin/kbrelaymcp.mjs"},"dist":{"shasum":"c7688c4bab2b1482162ee4f4d2ec71e4308c74a2","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaymcp/-/kbrelaymcp-0.2.0.tgz","fileCount":15,"integrity":"sha512-1bojoZN0Ib4Ku1HpXXHKGLIAqWxbWbiYgd5qIyZsUXFd/IbTz0wWA32av6sXbvxktA/TNQetFusN17zM8l1BWw==","signatures":[{"sig":"MEQCIGymey+bxn16JattRIq0Uix8qGO5r9B3b6TsBcPgz7b6AiBf6FePec5NorWqNaB64mdpxO9PBpLLi42gTAUF5IIftQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21522},"type":"module","engines":{"node":">=20"},"private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"_npmVersion":"11.13.0","description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"zod":"^3.24.1","zod-to-json-schema":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"~5.9.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kbrelaymcp_0.2.0_1782945970516_0.4948073036015568","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@alacrity-ai/kbrelaymcp","version":"0.3.0","keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"license":"MIT","_id":"@alacrity-ai/kbrelaymcp@0.3.0","maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"bin":{"kbrelaymcp":"bin/kbrelaymcp.mjs"},"dist":{"shasum":"80f62aded2f4d072bac00aa200e91cdb4c0c9597","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaymcp/-/kbrelaymcp-0.3.0.tgz","fileCount":15,"integrity":"sha512-4fF1f3mVZ7rF4UOlh9IlZ66sSNRbe6q+wzbeVlx3K8PyLqNL+VcmIGS+AfjGEm/W74ZHkziNvSdmFvhVyp46fQ==","signatures":[{"sig":"MEUCIFIEdrOf7oS8qP2ljU0f9Bt7I7dJW/0UuAJYnicX0pfKAiEA4mJTYHVZk3K8y3Fvd8ENvMgagNiIPs69Sdp0YxbuJsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21562},"type":"module","engines":{"node":">=20"},"private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"_npmVersion":"11.13.0","description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"zod":"^3.24.1","zod-to-json-schema":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"~5.9.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kbrelaymcp_0.3.0_1782947891667_0.34649690745460426","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@alacrity-ai/kbrelaymcp","version":"0.3.1","keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"license":"MIT","_id":"@alacrity-ai/kbrelaymcp@0.3.1","maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"bin":{"kbrelaymcp":"bin/kbrelaymcp.mjs"},"dist":{"shasum":"608e3be4d25effd7323e6003e2d90936817eb2b9","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaymcp/-/kbrelaymcp-0.3.1.tgz","fileCount":15,"integrity":"sha512-5dxSTAU0/HvvokWSCDIqNBOO6fqsUT2YJZ/yRuiYLP/Si4dpA3Ni9HzcbrbF19KYHd2HjIuq7g1Y5ejIVO2RMQ==","signatures":[{"sig":"MEUCIEpgfwBM+g15/Hj+/qjUz2KIvALo15gX/gNOYEQP6vSeAiEArrd39GAP3yKM5Z0Zpb+y432kkZ7iLLomL/fA98q1Oas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21897},"type":"module","engines":{"node":">=20"},"private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"_npmVersion":"11.13.0","description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"zod":"^3.24.1","zod-to-json-schema":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"~5.9.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kbrelaymcp_0.3.1_1782948111669_0.14420138533192506","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@alacrity-ai/kbrelaymcp","version":"0.4.0","keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"license":"MIT","_id":"@alacrity-ai/kbrelaymcp@0.4.0","maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"bin":{"kbrelaymcp":"bin/kbrelaymcp.mjs"},"dist":{"shasum":"a9e0f854e4eb7cb57bae9ed706ce90f4096765c5","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaymcp/-/kbrelaymcp-0.4.0.tgz","fileCount":15,"integrity":"sha512-N/3s6QS64WYmI4XP0xuF7NMU1RMyWRs3xrqMe+h8kRFFYUxRYk1Q/LoWN62D9YRrIpgN/WNcB5TDGzLpqDVWfw==","signatures":[{"sig":"MEYCIQC2MWnxF7Mrl6vjv3bi3LGaUogbKFxk0IUuRnKrcS+dqAIhAKDVLVJlxlAYspG29Q6YnPpGjf0uM7N5/aS+6PRbqaok","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22403},"type":"module","engines":{"node":">=20"},"gitHead":"3f0836a58213ef23766b59cc6fa0392e37d19f85","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"_npmVersion":"11.13.0","description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"zod":"^3.24.1","zod-to-json-schema":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"~5.9.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kbrelaymcp_0.4.0_1782961298773_0.8240448531282754","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@alacrity-ai/kbrelaymcp","version":"0.5.0","keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"license":"MIT","_id":"@alacrity-ai/kbrelaymcp@0.5.0","maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"bin":{"kbrelaymcp":"bin/kbrelaymcp.mjs"},"dist":{"shasum":"deb8a0a0d243e3ccb988992ed2e89540cc2692fd","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaymcp/-/kbrelaymcp-0.5.0.tgz","fileCount":15,"integrity":"sha512-3zZWCtCGnRlvF8zsTPymukjfHF4TrXxaTPr1n3IwRJUasFzUkcNww/VDK17nSxfVmL+3IZh7b/PRqSu814JZZg==","signatures":[{"sig":"MEUCIQDjlKvwuLnREETS1jZBPNpG+/vudGxpEvJaiw666knsrQIgSxQR3JM/UhvLBl8eHsCEhnhnE+2yFWkHYOhT7jFDScM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29175},"type":"module","engines":{"node":">=20"},"gitHead":"68679d281e5c45b9f5c6d4799af38baa7e3d8d92","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"_npmVersion":"11.13.0","description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"zod":"^3.24.1","zod-to-json-schema":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"~5.9.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kbrelaymcp_0.5.0_1783098910887_0.12299375855430439","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@alacrity-ai/kbrelaymcp","version":"0.6.0","keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"license":"MIT","_id":"@alacrity-ai/kbrelaymcp@0.6.0","maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"bin":{"kbrelaymcp":"bin/kbrelaymcp.mjs"},"dist":{"shasum":"5734704fe198cdd71c082858c96cdf39755f0d05","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaymcp/-/kbrelaymcp-0.6.0.tgz","fileCount":15,"integrity":"sha512-IT5ThUAuMu4WkLveLFysuiPsvpBLUj/HenDQQp7ysZOOCpQQT7qIGqok+AOoG+S/Q5lzSUT58AfA6y6/I6xbPg==","signatures":[{"sig":"MEUCIQDC1ED9wAlyyk0rEQ44DyNaw41l5VCb0veJt2MSUqwKZgIgf5G12HGVGF39h9gJ3vIGobH1NkLdq1nFAyuuDP0/K00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30738},"type":"module","engines":{"node":">=20"},"gitHead":"e3e46df00437c227bc5bf0a05b40fbf09e40c071","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"_npmVersion":"11.13.0","description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"zod":"^3.24.1","zod-to-json-schema":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"~5.9.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kbrelaymcp_0.6.0_1783302464721_0.2310248529655441","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@alacrity-ai/kbrelaymcp","version":"0.7.0","keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"license":"MIT","_id":"@alacrity-ai/kbrelaymcp@0.7.0","maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"bin":{"kbrelaymcp":"bin/kbrelaymcp.mjs"},"dist":{"shasum":"ae3a4207ba6637434dd96bb6f991e1323f86857e","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaymcp/-/kbrelaymcp-0.7.0.tgz","fileCount":15,"integrity":"sha512-j4SkF7Fs8bJVdcW8Lvh6XT6jxm/RuyyeahchQEJ/f4rdfmvKW2PCHFa1H8uzdYQpbpQ2Y5nPtI1dOfxmk5wKJg==","signatures":[{"sig":"MEUCIBYOj0Can9NIupG0jVzuQLe9iMBfppITxCUpjcSdhQACAiEA1cWe5jMJDsSq98eOIXR4C3yw8t3oSYvwvqPfMYAQO6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31709},"type":"module","engines":{"node":">=20"},"gitHead":"039915d2e32d6c0f37818731d890bd3615ecf7e5","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"_npmVersion":"11.13.0","description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"zod":"^3.24.1","zod-to-json-schema":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"~5.9.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kbrelaymcp_0.7.0_1783458711797_0.35570744416006583","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@alacrity-ai/kbrelaymcp","version":"0.8.0","keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"license":"MIT","_id":"@alacrity-ai/kbrelaymcp@0.8.0","maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"bin":{"kbrelaymcp":"bin/kbrelaymcp.mjs"},"dist":{"shasum":"2695122fa1afcd1d26feabb2a3fe102238402340","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaymcp/-/kbrelaymcp-0.8.0.tgz","fileCount":15,"integrity":"sha512-IrSvdjSmxklFPdJGlm/bWj17tkFcjtHm0PgrsyG7KDYgsTN3KmDdRPV8FiZ/+eoj6ZuA9pLRUkoKqq+CJ/tnww==","signatures":[{"sig":"MEQCIAzS0qUr9R7gLkdjUDus583ofFrEPmMVrREQBwdZtO/cAiAbc5/CrY1s+Ec6ZKjPrf8YdzoBvJtYq8NkOCspINLoAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33865},"type":"module","engines":{"node":">=20"},"gitHead":"86b3a6b311f22029e4dc6553912215f95622f98b","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"_npmVersion":"11.13.0","description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"zod":"^3.24.1","zod-to-json-schema":"^3.24.1","@modelcontextprotocol/sdk":"^1.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"~5.9.3","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/kbrelaymcp_0.8.0_1783803639986_0.8516952153450021","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@alacrity-ai/kbrelaymcp","version":"0.8.1","description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","type":"module","license":"MIT","private":false,"bin":{"kbrelaymcp":"bin/kbrelaymcp.mjs"},"publishConfig":{"access":"public"},"engines":{"node":">=20"},"scripts":{"build":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build","typecheck":"tsc --noEmit -p tsconfig.build.json","test":"vitest run"},"keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","zod":"^3.24.1","zod-to-json-schema":"^3.24.1"},"devDependencies":{"@types/node":"^24.0.0","typescript":"~5.9.3","vitest":"^2.1.0"},"gitHead":"87f614913b6fd8a94beb41bf92014e15a3c8c181","_id":"@alacrity-ai/kbrelaymcp@0.8.1","_nodeVersion":"24.7.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-GGPRtsfeZQMlMcoOil2cVY5W7B+PvVxmXASi3fweYD9k/JqmKTBtBKSwrcsvMpB6N93lJ8CR7dL2yzfBMc98+Q==","shasum":"c87af1fe07288fada5d36c8b0c126f80275b6243","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaymcp/-/kbrelaymcp-0.8.1.tgz","fileCount":15,"unpackedSize":33817,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFh7wJzLM3yxxYtqmRcRvQmvJggjZPPcgRycUFejfKuHAiEAqSBq8eZoVVM8S7Z4LlCIuvRtB7yRgxxTA8KBjaG2bx0="}]},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"directories":{},"maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kbrelaymcp_0.8.1_1784239125483_0.7398133465178303"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T22:13:25.905Z","modified":"2026-07-16T21:58:45.830Z","0.1.0":"2026-07-01T22:13:26.185Z","0.2.0":"2026-07-01T22:46:10.652Z","0.3.0":"2026-07-01T23:18:11.823Z","0.3.1":"2026-07-01T23:21:51.804Z","0.4.0":"2026-07-02T03:01:38.925Z","0.5.0":"2026-07-03T17:15:11.032Z","0.6.0":"2026-07-06T01:47:44.857Z","0.7.0":"2026-07-07T21:11:51.982Z","0.8.0":"2026-07-11T21:00:40.106Z","0.8.1":"2026-07-16T21:58:45.630Z"},"license":"MIT","keywords":["mcp","model-context-protocol","kbrelay","kanban","agents"],"description":"MCP server for kbRelay — give an agent kanban powers (projects, cards, timeline, mentions) over the kbRelay API.","maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"readme":"# @alacrity-ai/kbrelaymcp\n\nAn [MCP](https://modelcontextprotocol.io) server that gives an agent **kbRelay**\npowers — projects, cards, the timeline, and your @-mentions — over kbRelay's HTTP\nAPI. It's a thin, standalone stdio client: it carries no privileges of its own, so\nthe API token's tenant and **project access (RBAC)** govern exactly what it can see\nand do. Point it at a token minted for an **agent user** and everything the agent\ndoes is attributed to that agent (correct provenance).\n\n## Install (Claude Code / Claude Desktop)\n\n```bash\nclaude mcp add kbrelay --scope user \\\n  --env KBRELAY_BASE_URL=https://kbrelay.com \\\n  --env KBRELAY_API_KEY=<token from the web \"API keys\" panel> \\\n  -- npx -y @alacrity-ai/kbrelaymcp\n```\n\n`KBRELAY_BASE_URL` can point at the hosted deployment **or** a self-host instance\n(e.g. `http://localhost:8080`), so the same MCP works against both.\n\n### Other MCP clients (Cursor / Windsurf / Cline)\n\n```json\n{\n  \"mcpServers\": {\n    \"kbrelay\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alacrity-ai/kbrelaymcp\"],\n      \"env\": {\n        \"KBRELAY_BASE_URL\": \"https://kbrelay.com\",\n        \"KBRELAY_API_KEY\": \"<your token>\"\n      }\n    }\n  }\n}\n```\n\n## Configuration\n\n| Env var | Required | Purpose |\n|---|---|---|\n| `KBRELAY_BASE_URL` | yes | kbRelay origin, e.g. `https://kbrelay.com` or `http://localhost:8080`. |\n| `KBRELAY_API_KEY` | yes | A bearer token. For correct provenance, use a key minted for an **agent user** (web → *Team & access → Agents*) so the agent's work is attributed to it, not to you. A personal key from the **API keys** panel also works. Sent as `Authorization: Bearer …`. |\n\n## Tools\n\n| Tool | Kind | What it does |\n|---|---|---|\n| `whoami` | read | The current user + tenant (call first for your user id). |\n| `list_users` | read | Tenant users → resolve names/@handles to ids. |\n| `list_projects` | read | Projects you can access (admins: all). |\n| `get_project` | read | A project + its columns with roles. `projectId` accepts the **code** (`KBR`) or id. |\n| `get_board` | read | **One-call board snapshot** — project + columns + card digests (no spec bodies). Orient with this (v0.21.0). |\n| `create_project` | write | New project (`code` required, seeds columns). **Admin keys only** since KBR-94 — member keys get 403. |\n| `update_project` | write | Edit a project's name/code/description/color/status. **Admin keys only** since KBR-94. |\n| `list_cards` | read | Cards with full bodies (filter by column/assignee/q; `assignee: \"me\"` works). Prefer `get_board` to orient. |\n| `get_card` | read | One card (read the spec before working it). `cardId` accepts the **ticket key** (`KBR-12`) or id. Returns `attachments[]` — each with `filename`, `kind`, `sizeBytes`, and a same-origin `url` (v0.16.0). |\n| `create_card` | write | New card (markdown body; `@handle` to notify). `columnRole: \"ready\"` targets a lane without knowing column ids (v0.21.0). |\n| `update_card` | write | Edit and/or **move** (status = column) — `columnRole: \"in_progress\"` moves by role with zero prior reads; `cardId` accepts the ticket key (v0.21.0). Since KBR-101, member keys change content only on cards **they created**; `archived` is admin-only; column/assignee/reviewer moves stay open. |\n| `delete_card` | write | Delete a card (cascades). **Admin keys only** since KBR-94 — members archive instead. |\n| `get_timeline` | read | A card's activity log (events + comments). |\n| `get_project_activity` | read | Newest-first card events across a whole board — \"what happened while I was away?\" (cursor-paginated, v0.17.0). |\n| `add_comment` | write | Report results on the timeline (note or handoff); `attachmentIds` links uploaded files. |\n| `add_attachment` | write | Upload a file to a card (`filePath` or base64, ≤25 MB) → attachment + markdown snippet (v0.17.0). |\n| `delete_attachment` | write | Delete an attachment (uploader or admin; bytes purged). |\n| `review_card` | write | Assigned-reviewer verdict: approve (→ done, AC checked) or reject (→ in progress) with a review note (KBR-110/111). |\n| `link_card` / `unlink_card` | write | Attach/remove a typed external reference (e.g. a Jira/GitHub link). |\n| `find_cards_by_link` | read | Which card tracks `JIRA-123`? Look up by provider + external key. |\n| `redact_comment` | write | Soft-delete your own comment (leaves a tombstone). |\n| `list_my_queue` | read | Your actionable queue — cards assigned to you in a `ready`-role column (v0.15.0). Work these first. |\n| `get_mentions` | read | Your @-mentions — \"what did people ask me?\". |\n| `mark_mentions_read` | write | Acknowledge mentions after handling them. |\n\n**Address things the way you talk about them (v0.21.0):** anywhere a tool takes a\n`cardId` you can pass the **ticket key** (`KBR-12`); anywhere a `projectId`, the\n**project code** (`KBR`); moves take `columnRole` instead of a column id; and\n`list_cards` accepts `assignee: \"me\"`. The old ids keep working everywhere.\n\nThe `get_mentions` + `add_comment` pair makes *\"check your mentions and respond to\nthem\"* a first-class flow, and `add_attachment` + `add_comment` (`attachmentIds`)\nmakes *\"attach the evidence to the handoff\"* one too.\n\n## Requirements\n\nNode ≥ 20. No configuration files — just the two env vars.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}