uk-parliament-mcp 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,38 @@
1
+ """Statutory Instruments API tools for secondary legislation."""
2
+ from urllib.parse import quote
3
+
4
+ from mcp.server.fastmcp import FastMCP
5
+
6
+ from uk_parliament_mcp.http_client import get_result
7
+
8
+ STATUTORY_INSTRUMENTS_API_BASE = "https://statutoryinstruments-api.parliament.uk/api/v2"
9
+
10
+
11
+ def register_tools(mcp: FastMCP) -> None:
12
+ """Register statutory instruments tools with the MCP server."""
13
+
14
+ @mcp.tool()
15
+ async def search_statutory_instruments(name: str) -> str:
16
+ """Search for Statutory Instruments (secondary legislation) by name. Use when researching government regulations, rules, or orders made under primary legislation. SIs are used to implement or modify laws.
17
+
18
+ Args:
19
+ name: Name or title of the statutory instrument to search for.
20
+
21
+ Returns:
22
+ Statutory Instruments matching the search term.
23
+ """
24
+ url = f"{STATUTORY_INSTRUMENTS_API_BASE}/StatutoryInstrument?Name={quote(name)}"
25
+ return await get_result(url)
26
+
27
+ @mcp.tool()
28
+ async def search_acts_of_parliament(name: str) -> str:
29
+ """Search for Acts of Parliament (primary legislation) by name or topic. Use when researching existing laws, finding legislation on specific subjects, or understanding the legal framework on particular issues.
30
+
31
+ Args:
32
+ name: Name or title of the Act to search for (e.g. 'Climate Change Act', 'Human Rights Act').
33
+
34
+ Returns:
35
+ Acts of Parliament matching the search term.
36
+ """
37
+ url = f"{STATUTORY_INSTRUMENTS_API_BASE}/ActOfParliament?Name={quote(name)}"
38
+ return await get_result(url)
@@ -0,0 +1,25 @@
1
+ """Treaties API tools for international agreements."""
2
+ from urllib.parse import quote
3
+
4
+ from mcp.server.fastmcp import FastMCP
5
+
6
+ from uk_parliament_mcp.http_client import get_result
7
+
8
+ TREATIES_API_BASE = "https://treaties-api.parliament.uk/api"
9
+
10
+
11
+ def register_tools(mcp: FastMCP) -> None:
12
+ """Register treaties tools with the MCP server."""
13
+
14
+ @mcp.tool()
15
+ async def search_treaties(search_text: str) -> str:
16
+ """Search UK international treaties and agreements under parliamentary scrutiny | treaties, international agreements, trade deals, diplomatic treaties, international law, bilateral agreements | Use for researching international relations, trade agreements, or diplomatic commitments | Returns treaty details including titles, countries involved, and parliamentary scrutiny status
17
+
18
+ Args:
19
+ search_text: Search term for treaties. Examples: 'trade', 'EU', 'climate', 'Brexit'. Searches titles and content.
20
+
21
+ Returns:
22
+ Treaty details including titles, countries involved, and parliamentary scrutiny status.
23
+ """
24
+ url = f"{TREATIES_API_BASE}/Treaty?SearchText={quote(search_text)}"
25
+ return await get_result(url)
@@ -0,0 +1,72 @@
1
+ """WhatsOn API tools for parliamentary calendar and sessions."""
2
+ from mcp.server.fastmcp import FastMCP
3
+
4
+ from uk_parliament_mcp.http_client import build_url, get_result
5
+
6
+ WHATSON_API_BASE = "https://whatson-api.parliament.uk/calendar"
7
+
8
+
9
+ def register_tools(mcp: FastMCP) -> None:
10
+ """Register whatson tools with the MCP server."""
11
+
12
+ @mcp.tool()
13
+ async def search_calendar(
14
+ house: str,
15
+ start_date: str,
16
+ end_date: str,
17
+ ) -> str:
18
+ """Search parliamentary calendar for upcoming events and business in either chamber. Use when you want to know what's scheduled in Parliament, upcoming debates, or future parliamentary business. House: Commons/Lords.
19
+
20
+ Args:
21
+ house: House name: 'Commons' or 'Lords'.
22
+ start_date: Start date in YYYY-MM-DD format.
23
+ end_date: End date in YYYY-MM-DD format.
24
+
25
+ Returns:
26
+ Parliamentary calendar events in the date range.
27
+ """
28
+ url = build_url(
29
+ f"{WHATSON_API_BASE}/events/list.json",
30
+ {
31
+ "queryParameters.house": house,
32
+ "queryParameters.startDate": start_date,
33
+ "queryParameters.endDate": end_date,
34
+ },
35
+ )
36
+ return await get_result(url)
37
+
38
+ @mcp.tool()
39
+ async def get_sessions() -> str:
40
+ """Get list of parliamentary sessions. Use when you need to understand parliamentary terms, session dates, or the parliamentary calendar structure.
41
+
42
+ Returns:
43
+ List of parliamentary sessions.
44
+ """
45
+ url = f"{WHATSON_API_BASE}/sessions/list.json"
46
+ return await get_result(url)
47
+
48
+ @mcp.tool()
49
+ async def get_non_sitting_days(
50
+ house: str,
51
+ start_date: str,
52
+ end_date: str,
53
+ ) -> str:
54
+ """Get periods when Parliament is not sitting (recesses, holidays). Use when you need to know when Parliament is on break, recess periods, or when no parliamentary business is scheduled.
55
+
56
+ Args:
57
+ house: House name: 'Commons' or 'Lords'.
58
+ start_date: Start date in YYYY-MM-DD format.
59
+ end_date: End date in YYYY-MM-DD format.
60
+
61
+ Returns:
62
+ Non-sitting days in the date range.
63
+ """
64
+ url = build_url(
65
+ f"{WHATSON_API_BASE}/events/nonsitting.json",
66
+ {
67
+ "queryParameters.house": house,
68
+ "queryParameters.startDate": start_date,
69
+ "queryParameters.endDate": end_date,
70
+ },
71
+ )
72
+ return await get_result(url)
@@ -0,0 +1,379 @@
1
+ Metadata-Version: 2.4
2
+ Name: uk-parliament-mcp
3
+ Version: 1.0.0
4
+ Summary: UK Parliament MCP Server - bridges AI assistants with UK Parliament APIs
5
+ Author: Chris Brooksbank
6
+ License: MIT
7
+ Keywords: ai,api,claude,mcp,parliament,uk
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Requires-Python: >=3.11
14
+ Requires-Dist: httpx>=0.27.0
15
+ Requires-Dist: mcp>=1.0.0
16
+ Requires-Dist: tenacity>=8.2.0
17
+ Provides-Extra: dev
18
+ Requires-Dist: mypy>=1.8.0; extra == 'dev'
19
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
20
+ Requires-Dist: pytest-httpx>=0.30.0; extra == 'dev'
21
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
22
+ Requires-Dist: ruff>=0.3.0; extra == 'dev'
23
+ Description-Content-Type: text/markdown
24
+
25
+ # UK Parliament AI Assistant
26
+
27
+ This project helps Artificial Intelligence (AI) assistants, like Microsoft Copilot, answer questions using comprehensive official data from the UK Parliament. It acts as a bridge, allowing the AI to access up-to-date, reliable information directly from the source, covering members, bills, voting records, committees, debates, procedures, and much more.
28
+
29
+ ## ๐Ÿ”ฅ ESSENTIAL: System Prompt (Required for Best Results!)
30
+
31
+ **IMPORTANT**: You MUST use the starting system prompt when starting a new conversation. This is critical for accurate responses.
32
+
33
+ The easiest way to do this is to start all new conversations with the prompt "Hello Parliament".
34
+
35
+ Or you can copy and past the following instead :
36
+
37
+ ```plaintext
38
+ You are a helpful assistant that answers questions using only data from UK Parliament MCP servers.
39
+
40
+ When the session begins, introduce yourself with a brief message such as:
41
+
42
+ "Hello! Iโ€™m a parliamentary data assistant. I can help answer questions using official data from the UK Parliament MCP APIs. Just ask me something, and Iโ€™ll fetch what I can โ€” and Iโ€™ll always show you which sources I used."
43
+
44
+ When responding to user queries, you must:
45
+
46
+ Only retrieve and use data from the MCP API endpoints this server provides.
47
+
48
+ Avoid using any external sources or inferred knowledge.
49
+
50
+ After every response, append a list of all MCP API URLs used to generate the answer.
51
+
52
+ If no relevant data is available via the MCP API, state that clearly and do not attempt to fabricate a response.
53
+
54
+ Convert raw data into human-readable summaries while preserving accuracy, but always list the raw URLs used.
55
+ ```
56
+
57
+ ## What Can I Ask?
58
+
59
+ You can ask questions about virtually all aspects of UK Parliament data. Here are some key areas:
60
+
61
+ * **Live Parliamentary Activity:** "What's happening in the House of Commons right now?" or "What's currently being debated in the Lords?"
62
+ * **Members of Parliament:** "Tell me everything you know about Boris Johnson," "What are Sir Keir Starmer's registered interests?" or "Show me the voting record of member 4129"
63
+ * **Bills & Legislation:** "Show me details of bill 425," "What amendments were proposed for bill 425?" or "What publications exist for the Environment Bill?"
64
+ * **Voting Records:** "How did MPs vote on the climate change motion?" or "Show me Lords divisions on healthcare policy"
65
+ * **Committees & Inquiries:** "Which committees are investigating economic issues?" or "Show me evidence submitted to the Treasury Committee"
66
+ * **Parliamentary Procedures:** "Search Erskine May for references to Speaker's rulings" or "What are the oral question times this week?"
67
+ * **Constituencies & Elections:** "Show me election results for Birmingham constituencies" or "List all constituencies in Scotland"
68
+ * **Official Documents:** "Are there any statutory instruments about housing?" or "What treaties involve trade agreements?"
69
+ * **Transparency Data:** "Show register of interests for Treasury ministers" or "What are the declared interests categories?"
70
+
71
+ ## Disconnecting from parliament
72
+
73
+ Start a new chat session, or to keep context but disconnect from Parliament MCP servers prompt : "Goodbye Parliament"
74
+
75
+ ## How Does It Work?
76
+
77
+ When you ask a question to an AI assistant connected to this tool, it doesn't just guess the answer. Instead, the assistant uses this project to query the official UK Parliament database and provides a response based on the data it finds.
78
+
79
+ This means the answers you get are more likely to be accurate and based on facts.
80
+
81
+ ---
82
+
83
+ ## Installation and Usage Guide
84
+
85
+ This project makes public UK Parliamentary data accessible to large language models (LLMs/AIs) using the [Model Context Protocol (MCP)](https://www.anthropic.com/news/model-context-protocol).
86
+
87
+ It enables AI tools (e.g. Microsoft Copilot) to answer questions about UK Parliamentary data, as long as they support the MCP protocol.
88
+
89
+ > โœ… This project provides comprehensive coverage of UK Parliamentary data including members, bills, amendments, voting records, committees, debates, procedures, constituencies, and official documents.
90
+ > Additional data sources and endpoints are continuously being added.
91
+
92
+ Since AI is involved, some responses may be inaccurate. See **Prompting Tips** below to improve reliability.
93
+
94
+ ### Quick Install (Recommended)
95
+
96
+ Install directly from PyPI:
97
+
98
+ ```bash
99
+ pip install uk-parliament-mcp
100
+ ```
101
+
102
+ Or run without installing using uvx:
103
+
104
+ ```bash
105
+ uvx uk-parliament-mcp
106
+ ```
107
+
108
+ ### Installation from Source
109
+
110
+ For development or to get the latest unreleased changes:
111
+
112
+ #### Prerequisites
113
+
114
+ Make sure you have the following installed:
115
+
116
+ - [Python](https://www.python.org/downloads/) (v3.11 or later)
117
+ - [Git](https://git-scm.com/downloads)
118
+ - [Visual Studio Code](https://code.visualstudio.com/download)
119
+
120
+ #### Clone and Open the Project
121
+
122
+ ```bash
123
+ git clone https://github.com/ChrisBrooksbank/uk-parliament-mcp-lab.git
124
+ cd uk-parliament-mcp-lab
125
+ ```
126
+
127
+ Or download manually and open the folder in VS Code.
128
+
129
+ #### Install Dependencies
130
+
131
+ ```bash
132
+ # Create and activate virtual environment
133
+ python -m venv .venv
134
+ source .venv/bin/activate # Linux/Mac
135
+ # .venv\Scripts\activate # Windows
136
+
137
+ # Install the package
138
+ pip install -e .
139
+ ```
140
+
141
+ #### Add MCP Server in Claude Desktop Application
142
+
143
+ * Open the claude desktop application
144
+ * Click settings
145
+ * Click Developer tag
146
+ * Click Edit Config
147
+ * Edit file and save with UTF-8 encoding
148
+ * Exit claude ( with TaskMon if needed ) and restart it
149
+ * Open developer tab again and check it is running
150
+ * Enter the system prompt and test its working ok
151
+
152
+ **Using uvx (recommended - no installation needed):**
153
+
154
+ ```json
155
+ {
156
+ "mcpServers": {
157
+ "uk-parliament": {
158
+ "command": "uvx",
159
+ "args": ["uk-parliament-mcp"]
160
+ }
161
+ }
162
+ }
163
+ ```
164
+
165
+ **Using pip install:**
166
+
167
+ ```json
168
+ {
169
+ "mcpServers": {
170
+ "uk-parliament": {
171
+ "command": "uk-parliament-mcp"
172
+ }
173
+ }
174
+ }
175
+ ```
176
+
177
+ **Using local development install:**
178
+
179
+ ```json
180
+ {
181
+ "mcpServers": {
182
+ "uk-parliament": {
183
+ "command": "C:\\code\\uk-parliament-mcp-lab\\.venv\\Scripts\\python.exe",
184
+ "args": ["-m", "uk_parliament_mcp"],
185
+ "cwd": "C:\\code\\uk-parliament-mcp-lab"
186
+ }
187
+ }
188
+ }
189
+ ```
190
+
191
+
192
+
193
+
194
+
195
+ #### Add MCP Server in VS Code
196
+
197
+ 1. Press `Ctrl+Shift+P` to open the Command Palette.
198
+ 2. Select **MCP: Add Server**.
199
+ 3. Choose **Command: Stdio**.
200
+ 4. Enter the following command (adjust path if needed):
201
+
202
+ ```bash
203
+ python -m uk_parliament_mcp
204
+ ```
205
+
206
+ Or use the full path to the virtual environment Python:
207
+
208
+ ```bash
209
+ C:\code\uk-parliament-mcp-lab\.venv\Scripts\python.exe -m uk_parliament_mcp
210
+ ```
211
+
212
+ 5. Press **Enter**.
213
+
214
+ #### Start the Server
215
+
216
+ 1. Press `Ctrl+Shift+P` again.
217
+ 2. Select **MCP: List Servers**.
218
+ 3. Click the server you just added and choose **Start server**.
219
+
220
+ #### First Interaction
221
+
222
+ 1. Open **Copilot Chat** in VS Code.
223
+ 2. Set **Agent mode** using the dropdown in the bottom-left.
224
+ 3. Select your prefferred model e.g. Claude Sonnet 4
225
+ 4. Click **Configure Tools**, and select all tools from the newly added MCP server.
226
+ 5. (enter the system prompt and then) Try a prompt such as:
227
+
228
+ ```plaintext
229
+ What is happening now in the House of Commons?
230
+ ```
231
+
232
+ 6. Accept any permission request to allow the MCP call.
233
+
234
+ ### Prompting Tips
235
+
236
+ #### โœ… System Prompt
237
+
238
+ Always begin your session with the **System Prompt** defined at the top of this guide. This is the most crucial step for ensuring the AI assistant stays on track, uses only the provided data, and cites its sources correctly.
239
+
240
+ #### ๐Ÿ”„ Clear Context
241
+
242
+ Use the `+` icon (new chat) if:
243
+ - The AI seems stuck in a loop
244
+ - You want to reset the conversation context
245
+
246
+ #### ๐Ÿ”— Re-Display the API URL
247
+
248
+ While the AI is instructed to list source URLs automatically, you can ask for them again at any time. This is useful for troubleshooting or if you simply want to re-confirm the source for the last response.
249
+
250
+ You can ask :
251
+
252
+ ```plaintext
253
+ Show me the API URL you just used.
254
+ ```
255
+
256
+ Example response:
257
+ > The API URL just used to retrieve information about Boris Johnson is:
258
+ > `https://members-api.parliament.uk/api/Members/Search?Name=Boris%20Johnson`
259
+
260
+ #### ๐Ÿง  Combine Data from Multiple Sources
261
+
262
+ Example:
263
+ ```plaintext
264
+ Has Chelmsford been mentioned in either the Commons or Lords?
265
+ ```
266
+
267
+ The AI may:
268
+ - Query both Commons and Lords Hansard
269
+ - Combine the results
270
+ - Offer more detail if requested
271
+
272
+ #### ๐Ÿงพ See the Raw JSON
273
+
274
+ For debugging or to inspect the raw data structure, you can ask the assistant to show you the full JSON response from its last API call. This is particularly useful for developers who want to understand exactly what information the AI is working with before it is summarized.
275
+
276
+ Example prompt:
277
+ ```plaintext
278
+ Show me the JSON returned from the last MCP call.
279
+ ```
280
+
281
+ ### Example Prompts
282
+
283
+ #### ๐Ÿ›๏ธ Live Parliamentary Activity
284
+ - What is happening now in both Houses?
285
+ - What's currently happening in the House of Commons?
286
+ - What's currently happening in the House of Lords?
287
+
288
+ #### ๐Ÿ‘ฅ Members of Parliament
289
+ - Show me the interests of Sir Keir Starmer
290
+ - Who is Boris Johnson?
291
+ - Who is the member with ID 1471?
292
+ - Get the biography of member 172
293
+ - Show me contact details for member 4129
294
+ - What are the registered interests of member 3743?
295
+ - Show recent contributions from member 172
296
+ - What is the Commons voting record for member 4129?
297
+ - What is the Lords voting record for member 3743?
298
+ - Show the professional experience of member 1471
299
+ - What policy areas does member 172 focus on?
300
+ - Show early day motions submitted by member 1471
301
+ - Get the constituency election results for member 4129
302
+ - Show me the portrait and thumbnail images for member 172
303
+
304
+ #### ๐Ÿ“œ Bills and Legislation
305
+ - What recent bills are about fishing?
306
+ - What bills were updated recently?
307
+ - Show me details of bill 425
308
+ - What stages has bill 425 been through?
309
+ - What amendments were proposed for bill 425 at stage 15?
310
+ - Show me amendment 1234 for bill 425 stage 15
311
+ - What publications exist for bill 425?
312
+ - What news articles are there about bill 425?
313
+ - Show me all bill types available
314
+ - What are the different stages a bill can go through?
315
+ - Search for bills containing the word "environment"
316
+ - Get the RSS feed for all bills
317
+ - Get the RSS feed for public bills only
318
+ - Get the RSS feed for bill 425
319
+
320
+ #### ๐Ÿ—ณ๏ธ Voting and Divisions
321
+ - Search Commons Divisions for the keyword "refugee"
322
+ - Show details of Commons division 1234
323
+ - Show details of Lords division 5678
324
+ - Get Commons divisions grouped by party for keyword "climate"
325
+ - Get Lords divisions grouped by party for member 3743
326
+ - How many divisions match the search term "brexit"?
327
+
328
+ #### ๐Ÿข Committees and Inquiries
329
+ - Which committees are focused on women's issues?
330
+ - List committee meetings scheduled for November 2024
331
+ - Show me details of committee 789
332
+ - What events has committee 789 held?
333
+ - Who are the members of committee 789?
334
+ - Search for committee publications about healthcare
335
+ - Show me written evidence submitted to committee 789
336
+ - Show me oral evidence from committee 789 hearings
337
+ - What are all the committee types?
338
+
339
+ #### ๐Ÿ›๏ธ Parliamentary Procedures
340
+ - Search Erskine May for references to the Mace
341
+ - Show oral question times for questions tabled in November 2024
342
+ - Search Hansard for contributions on Brexit from November 2024
343
+ - What government departments exist?
344
+ - What are the answering bodies in Parliament?
345
+ - What parties are represented in the House of Commons?
346
+ - What parties are represented in the House of Lords?
347
+ - Show parliamentary calendar events for Commons in December 2024
348
+ - When is Parliament not sitting in January 2025?
349
+
350
+ #### ๐Ÿ“ Constituencies and Elections
351
+ - List all UK constituencies
352
+ - Show the election results for constituency 4359
353
+ - Search for constituencies containing "london"
354
+
355
+ #### ๐Ÿ’ฐ Transparency and Interests
356
+ - List all categories of members' interests
357
+ - Get published registers of interests
358
+ - Show staff interests for Lords members
359
+ - Search the register of interests for member 1471
360
+
361
+ #### ๐Ÿ“‹ Official Documents and Publications
362
+ - Are there any statutory instruments about harbours?
363
+ - Search Acts of Parliament that mention roads
364
+ - What treaties involve Spain?
365
+ - What publication types are available for bills?
366
+ - Show me document 123 from publication 456
367
+
368
+ #### ๐Ÿ” Advanced Queries
369
+ - Show the full data from this pasted API result: {PasteApiResultHere}
370
+ - Show me the JSON returned from the last MCP call
371
+ - Show me the API URL you just used
372
+ - Search for bills sponsored by member 172 from the Environment department
373
+ - Find all committee meetings about climate change between November and December 2024
374
+
375
+ ---
376
+
377
+ ## Final Thoughts
378
+
379
+ The project is under active development, with plans to increase data coverage and improve interaction quality. Contributions and feedback are welcome.
@@ -0,0 +1,23 @@
1
+ uk_parliament_mcp/__init__.py,sha256=3y4RwrAhzCvfuPAwKJiF0KsIYqfzRl7LHNNbvdetqJY,106
2
+ uk_parliament_mcp/__main__.py,sha256=sCBeBmVP7KOIEWyBeQOkTCq-12n3iYRJcIDs8BTGB4M,549
3
+ uk_parliament_mcp/http_client.py,sha256=Ln94DTtvCW6rE-nL8wjKx8B09-d47DwE2ryZ8xBw5X4,5560
4
+ uk_parliament_mcp/server.py,sha256=_s9dPwYsER0dfR1EUccpuKzOqJW6zpe5NHlozyJSsjY,1074
5
+ uk_parliament_mcp/tools/__init__.py,sha256=eWxH_qVslDmAhrayJEaaTHBaVYUQbmmcxBZXTMjCarY,47
6
+ uk_parliament_mcp/tools/bills.py,sha256=hIWIX-V_i36DmaPBFUS9FNJMRkJViPzVouugL-bIyRY,15342
7
+ uk_parliament_mcp/tools/committees.py,sha256=Wpw9czRqiXJlQ2-wrydkZOy1xUXp5VJbEE1cVXnj9q4,17540
8
+ uk_parliament_mcp/tools/commons_votes.py,sha256=ZcEIKc7te9JaNaahBrIY2wD9iVlhScqH6OV6I4YnHt8,6296
9
+ uk_parliament_mcp/tools/core.py,sha256=9RYG_ag88rR1wAfDGJTWePt9b5DF31DRRg2pu00105s,2264
10
+ uk_parliament_mcp/tools/erskine_may.py,sha256=RELLXlrvyCTrElcMCKjHghANYD8txzYmy4QX8b5XPpY,1009
11
+ uk_parliament_mcp/tools/hansard.py,sha256=yTyAk52VXNTMdrEX-LMYLXkQCzkA2kNUrfwSWuMCz6c,1487
12
+ uk_parliament_mcp/tools/interests.py,sha256=foftI-9kSKPsoYVKHT9aHc7eCg4LTQvfmL5rPjb7Is4,2106
13
+ uk_parliament_mcp/tools/lords_votes.py,sha256=m0kzmNBK4BFCeom5PSzG4MWXNJCzWTWLe3IOtjo6j4c,6497
14
+ uk_parliament_mcp/tools/members.py,sha256=ZQxE_HOumZOGZe5otqvo_aA9PVqBIJE2jBy-yRmDimE,20074
15
+ uk_parliament_mcp/tools/now.py,sha256=U1j4QpbUvI9rqNbM8UqpJlWc7NE2mup3KMfEpQ5DU_I,1236
16
+ uk_parliament_mcp/tools/oral_questions.py,sha256=ty5LXAXwLzSk9VhgFPn2_YX_Y4r088dz2XkfMQeEsvU,2788
17
+ uk_parliament_mcp/tools/statutory_instruments.py,sha256=Q9F4rPls2oZRqmS4yjQIveVptd9gDKKKy292TdOGqYg,1652
18
+ uk_parliament_mcp/tools/treaties.py,sha256=kF8fMZ96qFnc24wMYat-TW6GggpSgxjTjHPHDQCjihs,1211
19
+ uk_parliament_mcp/tools/whatson.py,sha256=00ei4_mGjsh0mx1NCv1vm0m9b3qbNpPLlGlix3IG9cg,2618
20
+ uk_parliament_mcp-1.0.0.dist-info/METADATA,sha256=a0nyCQ-KDE1RTFI464AlmglmyEN_4s050HiEEZLMQy8,13532
21
+ uk_parliament_mcp-1.0.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
22
+ uk_parliament_mcp-1.0.0.dist-info/entry_points.txt,sha256=KMWbvQHZnZ7b18mlcCpTQ-k9XciquJ7_TeULFOmUZis,70
23
+ uk_parliament_mcp-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ uk-parliament-mcp = uk_parliament_mcp.__main__:main