{"_id":"@darkhorseone/mcp-server-uk-parliament-commonsvotes","_rev":"2-94cc5312b5644527ff15d43e41b1bb2c","name":"@darkhorseone/mcp-server-uk-parliament-commonsvotes","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@darkhorseone/mcp-server-uk-parliament-commonsvotes","version":"1.0.0","author":{"name":"DarkhorseOne Limited"},"license":"MIT","_id":"@darkhorseone/mcp-server-uk-parliament-commonsvotes@1.0.0","maintainers":[{"name":"nick-ma","email":"honeyday.mj@gmail.com"}],"homepage":"https://github.com/DarkhorseOne/mcp-servers","bugs":{"url":"https://github.com/DarkhorseOne/mcp-servers/issues"},"bin":{"mcp-server-uk-parliament-commonsvotes":"dist/index.js","mcp-server-uk-parliament-commonsvotes-http":"dist/http.js"},"dist":{"shasum":"966e5588d39694f6045ac1dfc8b8f264ea8abf3c","tarball":"https://registry.npmjs.org/@darkhorseone/mcp-server-uk-parliament-commonsvotes/-/mcp-server-uk-parliament-commonsvotes-1.0.0.tgz","fileCount":7,"integrity":"sha512-lDJQmvHtnGC42sUjCIZlVIJsGd7M+9YAqjmiAlSBaEJ6p6Lg2S50KhKwnul5kFJd9qBVSxKHdAxhgC3VnJHq2g==","signatures":[{"sig":"MEQCIH/zXaTQZli5gQSYg+Le/UO5QC6Yqt0mGa6kEjAV9ddiAiBM7fM50sRQ29TXpgAu3aBxexycV0FdmHncCh4tOpvP+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28885},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"26b0ba97c9176997637436c415f1abe0af4f757e","scripts":{"dev":"tsx src/index.ts","lint":"pnpm run typecheck","test":"vitest run","build":"tsup src/index.ts src/http.ts --format esm --dts --clean","prepack":"pnpm run build && pnpm run check:tarball:shebang","typecheck":"tsc --noEmit -p tsconfig.json","start:http":"node dist/http.js","inspect:npm":"npx -y @modelcontextprotocol/inspector npx -y -p @darkhorseone/mcp-server-uk-parliament-commonsvotes mcp-server-uk-parliament-commonsvotes","inspect:local":"pnpm run build && npx -y @modelcontextprotocol/inspector node ./dist/index.js","prepublishOnly":"pnpm run check:tarball:shebang","check:tarball:shebang":"node ./scripts/verify-tarball-shebang.mjs"},"_npmUser":{"name":"nick-ma","email":"honeyday.mj@gmail.com"},"repository":{"url":"git+https://github.com/DarkhorseOne/mcp-servers.git","type":"git"},"_npmVersion":"11.10.0","description":"MCP server for UK Parliament Commons Votes API","directories":{},"_nodeVersion":"25.4.0","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.3.5","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-uk-parliament-commonsvotes_1.0.0_1773231317447_0.6579488136169662","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@darkhorseone/mcp-server-uk-parliament-commonsvotes","version":"1.0.1","description":"MCP server for UK Parliament Commons Votes API","license":"MIT","author":{"name":"DarkhorseOne Limited"},"homepage":"https://github.com/DarkhorseOne/mcp-servers","mcpName":"io.github.nick-ma/uk-parliament-commonsvotes","repository":{"type":"git","url":"git+https://github.com/DarkhorseOne/mcp-servers.git"},"type":"module","bin":{"mcp-server-uk-parliament-commonsvotes":"dist/index.js","mcp-server-uk-parliament-commonsvotes-http":"dist/http.js"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsup src/index.ts src/http.ts --format esm --dts --clean","check:tarball:shebang":"node ./scripts/verify-tarball-shebang.mjs","prepack":"pnpm run build && pnpm run check:tarball:shebang","prepublishOnly":"pnpm run check:tarball:shebang","typecheck":"tsc --noEmit -p tsconfig.json","lint":"pnpm run typecheck","test":"vitest run","dev":"tsx src/index.ts","start:http":"node dist/http.js","inspect:local":"pnpm run build && npx -y @modelcontextprotocol/inspector node ./dist/index.js","inspect:npm":"npx -y @modelcontextprotocol/inspector npx -y -p @darkhorseone/mcp-server-uk-parliament-commonsvotes mcp-server-uk-parliament-commonsvotes"},"dependencies":{"@modelcontextprotocol/sdk":"^1.27.1","zod":"^4.3.6"},"devDependencies":{"@types/node":"^24.3.0","tsup":"^8.3.5","tsx":"^4.20.5","typescript":"^5.9.2","vitest":"^3.2.4"},"gitHead":"0e2f31dfab22095ba686f381826a168f60becf7b","_id":"@darkhorseone/mcp-server-uk-parliament-commonsvotes@1.0.1","bugs":{"url":"https://github.com/DarkhorseOne/mcp-servers/issues"},"_nodeVersion":"25.4.0","_npmVersion":"11.10.0","dist":{"integrity":"sha512-clLSEZWdLYVOhepfdjCgMOiSYJSO8xg8ms+sZ/oLZ84iOh3KDXJuYOn6ZgaPied+hFIN9b3VpZ0uCoV7LBwTIA==","shasum":"b38a6c10aa4cb12ff026b1600eacc349dd8b5dee","tarball":"https://registry.npmjs.org/@darkhorseone/mcp-server-uk-parliament-commonsvotes/-/mcp-server-uk-parliament-commonsvotes-1.0.1.tgz","fileCount":7,"unpackedSize":32007,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD9HCNhVRgNN6/fojPeUdzyWOhZBIFcTz0g55Fikbe9FAIgdLZsHorJHiptHka6/NSeo2Qfl76bXBeI7hnsCzgptkQ="}]},"_npmUser":{"name":"nick-ma","email":"honeyday.mj@gmail.com"},"directories":{},"maintainers":[{"name":"nick-ma","email":"honeyday.mj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server-uk-parliament-commonsvotes_1.0.1_1773358554095_0.19136610927560116"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-11T12:15:17.357Z","modified":"2026-03-12T23:35:54.371Z","1.0.0":"2026-03-11T12:15:17.601Z","1.0.1":"2026-03-12T23:35:54.240Z"},"bugs":{"url":"https://github.com/DarkhorseOne/mcp-servers/issues"},"author":{"name":"DarkhorseOne Limited"},"license":"MIT","homepage":"https://github.com/DarkhorseOne/mcp-servers","repository":{"type":"git","url":"git+https://github.com/DarkhorseOne/mcp-servers.git"},"description":"MCP server for UK Parliament Commons Votes API","maintainers":[{"name":"nick-ma","email":"honeyday.mj@gmail.com"}],"readme":"![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-blue)\n![AI Agent Ready](https://img.shields.io/badge/AI-Agent%20Ready-green)\n\n# UK Parliament Commons Votes MCP Server\n\n# Summary\nThis MCP server provides structured access to UK Parliament Commons Votes data using the Model Context Protocol.\nIt enables AI agents to retrieve divisions and voting records through API-backed tools, delivering reliable data access for automation and analysis.\nDevelopers can integrate the MCP server via stdio transport to access division details, member voting history, and search results.\nThe server exposes tools that map directly to the Commons Votes API for fast, consistent querying by AI agents and developer tools.\n\n## Features\n- Fetch Commons division details by division id in JSON or XML.\n- Search divisions with filters for members, dates, and division numbers.\n- Retrieve member voting records and grouped-by-party summaries.\n- Preserve upstream responses in a consistent envelope for downstream tools and AI agents.\n\n## Available Tools\n### ukpcv_division_get_by_id\nReturn a Division.\n\nParameters:\n- divisionId (number, path) – Division id.\n- format (string, path) – xml or json.\n\n### ukpcv_divisions_grouped_by_party\nReturn Divisions results grouped by party.\n\nParameters:\n- format (string, path) – xml or json.\n- queryParameters.searchTerm (string, query)\n- queryParameters.memberId (number, query)\n- queryParameters.includeWhenMemberWasTeller (boolean, query)\n- queryParameters.startDate (string, query) – yyyy-MM-dd.\n- queryParameters.endDate (string, query) – yyyy-MM-dd.\n- queryParameters.divisionNumber (number, query)\n\n### ukpcv_divisions_member_voting\nReturn voting records for a Member.\n\nParameters:\n- format (string, path) – xml or json.\n- queryParameters.memberId (number, query) – required.\n- queryParameters.skip (number, query)\n- queryParameters.take (number, query)\n- queryParameters.searchTerm (string, query)\n- queryParameters.includeWhenMemberWasTeller (boolean, query)\n- queryParameters.startDate (string, query) – yyyy-MM-dd.\n- queryParameters.endDate (string, query) – yyyy-MM-dd.\n- queryParameters.divisionNumber (number, query)\n\n### ukpcv_divisions_search\nReturn a list of Divisions.\n\nParameters:\n- format (string, path) – json or xml.\n- queryParameters.skip (number, query)\n- queryParameters.take (number, query)\n- queryParameters.searchTerm (string, query)\n- queryParameters.memberId (number, query)\n- queryParameters.includeWhenMemberWasTeller (boolean, query)\n- queryParameters.startDate (string, query) – yyyy-MM-dd.\n- queryParameters.endDate (string, query) – yyyy-MM-dd.\n- queryParameters.divisionNumber (number, query)\n\n### ukpcv_divisions_search_total_results\nReturn total results count.\n\nParameters:\n- format (string, path) – json or xml.\n- queryParameters.searchTerm (string, query)\n- queryParameters.memberId (number, query)\n- queryParameters.includeWhenMemberWasTeller (boolean, query)\n- queryParameters.startDate (string, query) – yyyy-MM-dd.\n- queryParameters.endDate (string, query) – yyyy-MM-dd.\n- queryParameters.divisionNumber (number, query)\n\n## Example Output\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"items\": [\n      {\n        \"divisionId\": 1234,\n        \"title\": \"Finance Bill - Third Reading\",\n        \"divisionNumber\": 15,\n        \"date\": \"2026-03-10\"\n      }\n    ],\n    \"totalResults\": 1\n  },\n  \"upstream_path\": \"/data/divisions.json/search\",\n  \"retrieved_at\": \"2026-03-11T10:00:00.000Z\"\n}\n```\n\n## Quick Start\nRun the MCP server using npx:\n\n```bash\nnpx -y -p @darkhorseone/mcp-server-uk-parliament-commonsvotes mcp-server-uk-parliament-commonsvotes\n```\n\n## MCP Configuration\nExample `mcpServers` configuration for stdio transport:\n\n```json\n{\n  \"mcpServers\": {\n    \"uk-parliament-commonsvotes\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"-p\", \"@darkhorseone/mcp-server-uk-parliament-commonsvotes\", \"mcp-server-uk-parliament-commonsvotes\"],\n      \"env\": {\n        \"UKPCV_API_BASE_URL\": \"https://commonsvotes-api.parliament.uk\",\n        \"UKPCV_REQUEST_TIMEOUT_MS\": \"10000\"\n      }\n    }\n  }\n}\n```\n\n## Example Usage\n- Fetch a division by id in JSON format.\n- Search divisions for a member within a date range.\n- Retrieve a member's voting record and paging results.\n- Get total results for a search query before fetching pages.\n\n## Use Cases\n- AI agents summarizing Commons divisions and outcomes.\n- Political analysis tools tracking voting history by member.\n- Civic technology platforms monitoring division trends.\n- Automation workflows exporting division data for reporting.\n\n## Data Source\nUK Parliament Commons Votes API\nhttps://commonsvotes-api.parliament.uk/\n\n## Installation\nRun directly using npx:\n\n```bash\nnpx -y -p @darkhorseone/mcp-server-uk-parliament-commonsvotes mcp-server-uk-parliament-commonsvotes\n```\n\nOr install via pnpm from the repository root:\n\n```bash\npnpm install\n```\n\n## Run (HTTP proxy server)\nBuild first, then start:\n\n```bash\npnpm --filter @darkhorseone/mcp-server-uk-parliament-commonsvotes run build\npnpm --filter @darkhorseone/mcp-server-uk-parliament-commonsvotes run start:http\n```\n\nSet a custom HTTP port with the `UKPCV_HTTP_PORT` environment variable (default: `8787`):\n\n```bash\nUKPCV_HTTP_PORT=8787 pnpm --filter @darkhorseone/mcp-server-uk-parliament-commonsvotes run start:http\n```\n\nPublished package command:\n\n```bash\nnpx -y -p @darkhorseone/mcp-server-uk-parliament-commonsvotes -- mcp-server-uk-parliament-commonsvotes-http\n```\n\nIf your shell cannot resolve the bin (\"command not found\"), run the HTTP entrypoint directly:\n\n```bash\nnpx -y -p @darkhorseone/mcp-server-uk-parliament-commonsvotes -- node ./dist/http.js\n```\n\nHealth check:\n\n```bash\ncurl http://127.0.0.1:8787/healthz\n```\n\n## License\nMIT License\n\n## MCP Metadata\nProtocol: Model Context Protocol\nTransport: stdio\nTools: ukpcv_division_get_by_id, ukpcv_divisions_grouped_by_party, ukpcv_divisions_member_voting, ukpcv_divisions_search, ukpcv_divisions_search_total_results\n","readmeFilename":"README.md"}