{"_id":"@darkhorseone/mcp-server-uk-parliament-interests","_rev":"2-dfe96af419c805a38c8b39094979286b","name":"@darkhorseone/mcp-server-uk-parliament-interests","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@darkhorseone/mcp-server-uk-parliament-interests","version":"1.0.0","author":{"name":"DarkhorseOne Limited"},"license":"MIT","_id":"@darkhorseone/mcp-server-uk-parliament-interests@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-interests":"dist/index.js","mcp-server-uk-parliament-interests-http":"dist/http.js"},"dist":{"shasum":"24e603e4d487b901ace81564be9fa5b84f0b73ad","tarball":"https://registry.npmjs.org/@darkhorseone/mcp-server-uk-parliament-interests/-/mcp-server-uk-parliament-interests-1.0.0.tgz","fileCount":7,"integrity":"sha512-gwqCNEVMeVsqAQCm23B9YbEe3xX1nNUegGLKB5q+YWMavXyCUbQktJIB4cLFzs8rrw/ajLQG67NaEPMf/C7SHA==","signatures":[{"sig":"MEUCIQClwzLMS0cnnP2VqluTmPJyQqCzDnMsa0oRTLP2LWgOSQIgajO9X7VGs3IbpX9/cTBj3NRTQCwc5sA4sEMS8lshky0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28955},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"6c809d5adbf61ec2b189701cbb46029d4baa341c","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-interests mcp-server-uk-parliament-interests","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 Register of Interests 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-interests_1.0.0_1773228813933_0.8763868044427208","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@darkhorseone/mcp-server-uk-parliament-interests","version":"1.0.1","description":"MCP server for UK Parliament Register of Interests API","license":"MIT","author":{"name":"DarkhorseOne Limited"},"homepage":"https://github.com/DarkhorseOne/mcp-servers","mcpName":"io.github.nick-ma/uk-parliament-interests","repository":{"type":"git","url":"git+https://github.com/DarkhorseOne/mcp-servers.git"},"type":"module","bin":{"mcp-server-uk-parliament-interests":"dist/index.js","mcp-server-uk-parliament-interests-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-interests mcp-server-uk-parliament-interests"},"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":"9183280f70f15cdbe601f078992ceb65b075dea2","_id":"@darkhorseone/mcp-server-uk-parliament-interests@1.0.1","bugs":{"url":"https://github.com/DarkhorseOne/mcp-servers/issues"},"_nodeVersion":"25.4.0","_npmVersion":"11.10.0","dist":{"integrity":"sha512-xvZtC9kdkxH4/+0CuTKfSMlZJTfWl6UPDudbG9Bn1QJLk+krAOxOalnnZiLybf0mcP/eV/VqakaBvWCnLkrvzw==","shasum":"a3a4e05e9eb29a192f7897d71675b039c45834fa","tarball":"https://registry.npmjs.org/@darkhorseone/mcp-server-uk-parliament-interests/-/mcp-server-uk-parliament-interests-1.0.1.tgz","fileCount":7,"unpackedSize":31953,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDD4XeASKpj1IvBNo/H58VHgCUeE8vJBeBOWH8NFqcd0AiB4bfEesi/7ArN9P9iG4SV4Q89RVjtUIk7qu06olUjcQQ=="}]},"_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-interests_1.0.1_1773359139468_0.3129073029762479"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-11T11:33:33.812Z","modified":"2026-03-12T23:45:39.762Z","1.0.0":"2026-03-11T11:33:34.081Z","1.0.1":"2026-03-12T23:45:39.618Z"},"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 Register of Interests 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 Register of Interests MCP Server\n\n# Summary\nThis MCP server provides structured access to the UK Parliament Register of Interests using the Model Context Protocol.\nIt enables AI agents to query interest categories, published registers, and interest records through API-backed tools and data access.\nDevelopers can integrate the MCP server via stdio transport to retrieve registers, interests, and PDFs for analysis workflows.\nThe server exposes tools that map directly to the Register of Interests API, optimized for AI agents and developer tooling.\n\n## Features\n- List interest categories and fetch category details by id.\n- Retrieve published registers, register PDFs, and register metadata.\n- Query interests with filters for members, dates, and categories.\n- Preserve upstream payloads in a standardized envelope for downstream tools and AI agents.\n\n## Available Tools\n### ukpi_categories_list\nReturn a list of categories interests should be registered under, sorted by category number.\n\nParameters:\n- Skip (number, query) – Records to skip.\n- Take (number, query) – Records to return.\n\n### ukpi_categories_get_by_id\nReturn details of an interest category by ID.\n\nParameters:\n- id (number, path) – Category id.\n\n### ukpi_interests_list\nReturn a list of interests that have been published on a register.\n\nParameters:\n- MemberId (number, query)\n- CategoryId (number, query)\n- PublishedFrom (string, query)\n- PublishedTo (string, query)\n- RegisteredFrom (string, query)\n- RegisteredTo (string, query)\n- UpdatedFrom (string, query)\n- UpdatedTo (string, query)\n- RegisterId (number, query)\n- ExpandChildInterests (boolean, query)\n- Take (number, query)\n- SortOrder (string, query) – PublishingDateDescending | CategoryAscending\n- Skip (number, query)\n\n### ukpi_interests_csv\nReturn interests as CSVs packaged in a ZIP file.\n\nParameters:\n- MemberId (number, query)\n- CategoryId (number, query)\n- PublishedFrom (string, query)\n- PublishedTo (string, query)\n- RegisteredFrom (string, query)\n- RegisteredTo (string, query)\n- UpdatedFrom (string, query)\n- UpdatedTo (string, query)\n- RegisterId (number, query)\n- IncludeFieldDescriptions (boolean, query)\n\n### ukpi_interests_get_by_id\nReturn the latest version of an interest which has been published.\n\nParameters:\n- id (number, path) – Interest id.\n\n### ukpi_registers_list\nReturn a list of published versions of registers of interests.\n\nParameters:\n- SessionId (number, query)\n- Skip (number, query)\n- Take (number, query)\n\n### ukpi_registers_get_by_id\nReturn a published version of a register of interests by ID.\n\nParameters:\n- id (number, path) – Register id.\n\n### ukpi_registers_document\nReturn a published register as a PDF document by ID.\n\nParameters:\n- id (number, path) – Register id.\n- type (string, query) – Full | Updated\n\n## Example Output\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"items\": [\n      {\n        \"interestId\": 9876,\n        \"memberId\": 123,\n        \"categoryId\": 2,\n        \"publishedDate\": \"2026-03-01\"\n      }\n    ],\n    \"totalResults\": 1\n  },\n  \"upstream_path\": \"/api/v1/Interests\",\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-interests mcp-server-uk-parliament-interests\n```\n\n## MCP Configuration\nExample `mcpServers` configuration for stdio transport:\n\n```json\n{\n  \"mcpServers\": {\n    \"uk-parliament-interests\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"-p\", \"@darkhorseone/mcp-server-uk-parliament-interests\", \"mcp-server-uk-parliament-interests\"],\n      \"env\": {\n        \"UKPI_API_BASE_URL\": \"https://interests-api.parliament.uk\",\n        \"UKPI_REQUEST_TIMEOUT_MS\": \"10000\"\n      }\n    }\n  }\n}\n```\n\n## Example Usage\n- List published interests for a member.\n- Fetch a specific interest by id.\n- Retrieve registers for a parliamentary session.\n- Download the latest register PDF.\n\n## Use Cases\n- AI agents summarizing member interests for transparency reporting.\n- Compliance workflows tracking published register updates.\n- Research tools aggregating interests by category or date.\n- Civic technology platforms monitoring register data changes.\n\n## Data Source\nUK Parliament Register of Interests API\nhttps://interests-api.parliament.uk/\n\n## Installation\nRun directly using npx:\n\n```bash\nnpx -y -p @darkhorseone/mcp-server-uk-parliament-interests mcp-server-uk-parliament-interests\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-interests run build\npnpm --filter @darkhorseone/mcp-server-uk-parliament-interests run start:http\n```\n\nSet a custom HTTP port with the `UKPI_HTTP_PORT` environment variable (default: `8787`):\n\n```bash\nUKPI_HTTP_PORT=8787 pnpm --filter @darkhorseone/mcp-server-uk-parliament-interests run start:http\n```\n\nPublished package command:\n\n```bash\nnpx -y -p @darkhorseone/mcp-server-uk-parliament-interests -- mcp-server-uk-parliament-interests-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-interests -- 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: ukpi_categories_list, ukpi_categories_get_by_id, ukpi_interests_list, ukpi_interests_csv, ukpi_interests_get_by_id, ukpi_registers_list, ukpi_registers_get_by_id, ukpi_registers_document\n","readmeFilename":"README.md"}