{"_id":"@acrity/mcp-server","_rev":"5-5fe487b6700cda804f1631af315bce86","name":"@acrity/mcp-server","dist-tags":{"next":"0.1.2","latest":"0.2.0"},"versions":{"0.1.0":{"name":"@acrity/mcp-server","version":"0.1.0","keywords":["acrity","mcp","model-context-protocol","code-review"],"license":"UNLICENSED","_id":"@acrity/mcp-server@0.1.0","maintainers":[{"name":"tech-driven-accounts","email":"accounts@techdriven.software"}],"homepage":"https://github.com/lekto-edu/adversarial-code-review/tree/main/mcp/acrity#readme","bugs":{"url":"https://github.com/lekto-edu/adversarial-code-review/issues"},"bin":{"acrity-mcp":"dist/index.js"},"dist":{"shasum":"03e3077e9eddf30254caaeae749d99ac78f3fa02","tarball":"https://registry.npmjs.org/@acrity/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":19,"integrity":"sha512-aCRTZ3NIZQ6uJxyLgU7lOAOJEsrEV89K7NiP+JguFSnb4ggYpu3ZTX5Z7VsSOL75nEuY9RGtDFn+71YCaKKK1g==","signatures":[{"sig":"MEQCIGRZsOt1sC2f6uaCEps8T2WUjHX/ViUuGRkuCQmUpu1IAiAzl1lqwvRu+7WkM6Fm03c/wFSRyU1xuZv+BosKS+U97Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51169},"type":"module","engines":{"node":">=20.10"},"gitHead":"60dc475c37c5dcb35883e30d8bf78376c033ab6c","mcpName":"com.acrity/acrity-mcp","private":false,"scripts":{"dev":"tsx src/index.ts","test":"yarn build && node --test \"dist/__tests__/*.test.js\"","build":"tsc -p tsconfig.json","start":"node dist/index.js","prepack":"yarn test"},"_npmUser":{"name":"tech-driven-accounts","email":"accounts@techdriven.software"},"repository":{"url":"git+https://github.com/lekto-edu/adversarial-code-review.git","type":"git","directory":"mcp/acrity"},"_npmVersion":"11.9.0","description":"MCP server for Acrity public API workflows.","directories":{},"resolutions":{"qs":"6.15.2","hono":"4.12.21","esbuild":"0.28.1"},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"tsx":"^4.22.4","typescript":"^5.9.3","@types/node":"^25.6.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1783037898074_0.5046809576411724","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@acrity/mcp-server","version":"0.1.1","keywords":["acrity","mcp","model-context-protocol","code-review"],"license":"UNLICENSED","_id":"@acrity/mcp-server@0.1.1","maintainers":[{"name":"tech-driven-accounts","email":"accounts@techdriven.software"}],"homepage":"https://acrity.io","bin":{"acrity-mcp":"dist/index.js"},"dist":{"shasum":"01c8858d77c338d81559361c04a90d241dd841b6","tarball":"https://registry.npmjs.org/@acrity/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":19,"integrity":"sha512-RxFtpkqjY7JxlcvLwUyNvTD+0w0pK2fVfOilOa1Nq1mT1jnWrIJfj8wak8R2b8zHiLHXhF0wiErfprgiTQV+MQ==","signatures":[{"sig":"MEQCIG3rlFGwlbqBl/ipmAEq4dz7UDrJ2bPppMzEj6oBPLMIAiAridFAG/p1edqz3q0NdpcAFeO9VI3BNc+cV+Z8AG9LaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46708},"type":"module","engines":{"node":">=20.10"},"gitHead":"60dc475c37c5dcb35883e30d8bf78376c033ab6c","mcpName":"com.acrity/acrity-mcp","private":false,"scripts":{"dev":"tsx src/index.ts","test":"yarn build && node --test \"dist/__tests__/*.test.js\"","build":"tsc -p tsconfig.json","start":"node dist/index.js","prepack":"yarn test"},"_npmUser":{"name":"tech-driven-accounts","email":"accounts@techdriven.software"},"_npmVersion":"11.9.0","description":"MCP server for Acrity public API workflows.","directories":{},"resolutions":{"qs":"6.15.2","hono":"4.12.21","esbuild":"0.28.1"},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"tsx":"^4.22.4","typescript":"^5.9.3","@types/node":"^25.6.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.1_1783038460987_0.6785989515227449","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@acrity/mcp-server","version":"0.1.2","keywords":["acrity","mcp","model-context-protocol","code-review"],"license":"UNLICENSED","_id":"@acrity/mcp-server@0.1.2","maintainers":[{"name":"tech-driven-accounts","email":"accounts@techdriven.software"}],"homepage":"https://acrity.io","bin":{"acrity-mcp":"dist/index.js"},"dist":{"shasum":"e86e18e3c985249014a0d52367e0925bb7f172b7","tarball":"https://registry.npmjs.org/@acrity/mcp-server/-/mcp-server-0.1.2.tgz","fileCount":19,"integrity":"sha512-QZd6Yu9HC5TXrJXj+QqaN5zhEAilb7MU1+HTeGUSLvyFzktAE8WI62DE671c7FFHeG3DfoGUgXNeSQG66JLDkA==","signatures":[{"sig":"MEUCIQDT/pDIFEQeOTzu45+PA9bDMfoqFcxdrS31WQ3FwYCEJAIgeyfVuS055UbsYUAcHvSYr124PfLe5MJMACWpSTVUm8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46708},"type":"module","engines":{"node":">=20.10"},"gitHead":"60dc475c37c5dcb35883e30d8bf78376c033ab6c","mcpName":"com.acrity/acrity-mcp","private":false,"scripts":{"dev":"tsx src/index.ts","test":"yarn build && node --test \"dist/__tests__/*.test.js\"","build":"tsc -p tsconfig.json","start":"node dist/index.js","prepack":"yarn test"},"_npmUser":{"name":"tech-driven-accounts","email":"accounts@techdriven.software"},"_npmVersion":"11.9.0","description":"MCP server for Acrity public API workflows.","directories":{},"resolutions":{"qs":"6.15.2","hono":"4.12.21","esbuild":"0.28.1"},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"tsx":"^4.22.4","typescript":"^5.9.3","@types/node":"^25.6.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.2_1783038521301_0.9950675910312472","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@acrity/mcp-server","version":"0.2.0","description":"MCP server for Acrity public API workflows.","private":false,"type":"module","license":"UNLICENSED","packageManager":"yarn@1.22.22","mcpName":"com.acrity/acrity-mcp","bin":{"acrity-mcp":"dist/index.js"},"publishConfig":{"access":"public"},"homepage":"https://acrity.io","keywords":["acrity","mcp","model-context-protocol","code-review"],"scripts":{"build":"tsc -p tsconfig.json","start":"node dist/index.js","dev":"tsx src/index.ts","test":"yarn build && node --test \"dist/__tests__/*.test.js\"","prepack":"yarn test"},"dependencies":{"@modelcontextprotocol/sdk":"1.29.0","zod":"^3.25.76"},"devDependencies":{"@types/node":"^25.6.1","tsx":"^4.22.4","typescript":"^5.9.3"},"resolutions":{"@hono/node-server":"1.19.15","body-parser":"2.3.0","esbuild":"0.28.1","fast-uri":"3.1.5","hono":"4.12.34","ip-address":"10.3.1","qs":"6.15.2"},"engines":{"node":">=20.10"},"_id":"@acrity/mcp-server@0.2.0","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-kft1hloidf4+KuNM3GsJJIm2k4WQlDztAyA27G6o1D1Mxd0RZ5NLynDpSZkMjg5g4mb0k4n3Tfdv/2tFuZWrag==","shasum":"d948670578cb07a460e657913aaed2341cdfbb8a","tarball":"https://registry.npmjs.org/@acrity/mcp-server/-/mcp-server-0.2.0.tgz","fileCount":19,"unpackedSize":48900,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCv65UFgNC7e+dhUhKpMdZmYV8uPs9Kvd1KK+GOxjxzCgIgbdfaPrxfCN55xqv4c+zxo3GRcntRnqRk5bUA9+G8NJc="}]},"_npmUser":{"name":"tech-driven-accounts","email":"accounts@techdriven.software"},"directories":{},"maintainers":[{"name":"tech-driven-accounts","email":"accounts@techdriven.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.2.0_1787672863246_0.4484046799095136"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-03T00:18:17.918Z","modified":"2026-08-25T15:47:43.554Z","0.1.0":"2026-07-03T00:18:18.222Z","0.1.1":"2026-07-03T00:27:41.132Z","0.1.2":"2026-07-03T00:28:41.463Z","0.2.0":"2026-08-25T15:47:43.380Z"},"license":"UNLICENSED","homepage":"https://acrity.io","keywords":["acrity","mcp","model-context-protocol","code-review"],"description":"MCP server for Acrity public API workflows.","maintainers":[{"name":"tech-driven-accounts","email":"accounts@techdriven.software"}],"readme":"<div align=\"center\">\n  <a href=\"https://acrity.io\">\n    <img width=\"120\" alt=\"Acrity\" src=\"https://acrity.io/favicon.svg\" />\n  </a>\n  <h1>Acrity MCP Server</h1>\n  <p>MCP server for Acrity public API workflows.</p>\n  <p><a href=\"https://acrity.io\">acrity.io</a></p>\n</div>\n\n## What It Does\n\nThis package runs a local MCP stdio server that lets MCP-compatible agents use\nAcrity workspace data through the Acrity public API.\n\nThe server uses an existing Acrity public API key. It does not accept or create\nprovider secrets. Most tools are read-only; `start_security_scan` and\n`request_review` queue work through Acrity when the API key has write scopes.\n\n## Tools\n\n| Tool | Public API route | Required scope |\n| --- | --- | --- |\n| `get_acr_context` | `GET /api/v1/context` | Valid API key |\n| `list_repositories` | `GET /api/v1/repositories` | `Repositories.Read` |\n| `get_repository` | `GET /api/v1/repositories/{id}` | `Repositories.Read` |\n| `list_pull_requests` | `GET /api/v1/pull-requests` | `Reviews.Read` |\n| `get_pull_request` | `GET /api/v1/pull-requests/detail` | `Reviews.Read` |\n| `list_reviews` | `GET /api/v1/reviews` | `Reviews.Read` |\n| `get_review_findings` | `GET /api/v1/reviews/{runId}` | `Reviews.Read` |\n| `request_review` | `POST /api/v1/reviews` | `Reviews.Write` |\n| `check_bootstrap_eligibility` | `GET /api/v1/repositories/{id}/bootstrap/eligibility` | `Repositories.Read` |\n| `get_bootstrap_status` | `GET /api/v1/repositories/{id}/bootstrap` | `Repositories.Read` |\n| `get_bootstrap_artifact` | `GET /api/v1/repositories/{id}/bootstrap/artifact` | `Repositories.Read` |\n| `list_security_scans` | `GET /api/v1/security-scans` | `SecurityScans.Read` |\n| `get_security_scan` | `GET /api/v1/security-scans/{runId}` | `SecurityScans.Read` |\n| `start_security_scan` | `POST /api/v1/security-scans` | `SecurityScans.Write` |\n\n## Configuration\n\n`ACRITY_API_KEY` is required.\n\n`ACRITY_API_BASE_URL` is optional and defaults to `https://acrity.io`.\n\n```bash\nexport ACRITY_API_KEY=\"sk_prod_...\"\nexport ACRITY_API_BASE_URL=\"https://acrity.io\"\nexport ACRITY_MCP_TIMEOUT_MS=\"20000\"\n```\n\nRecommended read-only scopes:\n\n```text\nRepositories.Read\nReviews.Read\nSecurityScans.Read\n```\n\nAdd `SecurityScans.Write` when the agent should queue manual dependency security\nscans with `start_security_scan`.\n\nAdd `Reviews.Write` when the agent should queue manual reviews, including\ndry-runs, with `request_review`.\n\n## Run With npx\n\n```bash\nACRITY_API_KEY=\"sk_prod_...\" npx -y @acrity/mcp-server\n```\n\n## MCP Client Configuration\n\n```json\n{\n  \"mcpServers\": {\n    \"acrity\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@acrity/mcp-server\"],\n      \"env\": {\n        \"ACRITY_API_KEY\": \"sk_prod_...\"\n      }\n    }\n  }\n}\n```\n\nTo point the server at another Acrity environment, add `ACRITY_API_BASE_URL`.\nDo not include `/api`; the MCP server appends `/api/v1/*` paths itself.\n\n## Recommended First Call\n\nCall `get_acr_context` first. It verifies that the API key is active and reports\navailable scopes before the agent attempts deeper tools.\n","readmeFilename":"README.md"}