all-in-mcp 0.2.6__py3-none-any.whl → 0.2.7__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.
@@ -141,7 +141,12 @@ class IACRSearcher(PaperSource):
141
141
  return None
142
142
 
143
143
  def search(
144
- self, query: str, max_results: int = 10, fetch_details: bool = True
144
+ self,
145
+ query: str,
146
+ max_results: int = 10,
147
+ fetch_details: bool = True,
148
+ year_min: int | None = None,
149
+ year_max: int | None = None,
145
150
  ) -> list[Paper]:
146
151
  """
147
152
  Search IACR ePrint Archive
@@ -150,6 +155,8 @@ class IACRSearcher(PaperSource):
150
155
  query: Search query string
151
156
  max_results: Maximum number of results to return
152
157
  fetch_details: Whether to fetch detailed information for each paper (slower but more complete)
158
+ year_min: Minimum publication year (revised after)
159
+ year_max: Maximum publication year (revised before)
153
160
 
154
161
  Returns:
155
162
  List[Paper]: List of paper objects
@@ -158,7 +165,11 @@ class IACRSearcher(PaperSource):
158
165
 
159
166
  try:
160
167
  # Construct search parameters
161
- params = {"q": query}
168
+ params: dict[str, str | int] = {"q": query}
169
+ if year_min:
170
+ params["revisedafter"] = year_min
171
+ if year_max:
172
+ params["revisedbefore"] = year_max
162
173
 
163
174
  # Make request
164
175
  response = self.session.get(self.IACR_SEARCH_URL, params=params)
all_in_mcp/server.py CHANGED
@@ -47,6 +47,14 @@ async def handle_list_tools() -> list[types.Tool]:
47
47
  "description": "Whether to fetch detailed information for each paper (default: True)",
48
48
  "default": True,
49
49
  },
50
+ "year_min": {
51
+ "type": "integer",
52
+ "description": "Minimum publication year (revised after)",
53
+ },
54
+ "year_max": {
55
+ "type": "integer",
56
+ "description": "Maximum publication year (revised before)",
57
+ },
50
58
  },
51
59
  "required": ["query"],
52
60
  },
@@ -217,6 +225,8 @@ async def handle_call_tool(
217
225
  query = arguments.get("query", "")
218
226
  max_results = arguments.get("max_results", 10)
219
227
  fetch_details = arguments.get("fetch_details", True)
228
+ year_min = arguments.get("year_min")
229
+ year_max = arguments.get("year_max")
220
230
 
221
231
  if not query:
222
232
  return [
@@ -225,17 +235,34 @@ async def handle_call_tool(
225
235
  )
226
236
  ]
227
237
 
228
- papers = iacr_searcher.search(query, max_results, fetch_details)
238
+ papers = iacr_searcher.search(
239
+ query,
240
+ max_results=max_results,
241
+ fetch_details=fetch_details,
242
+ year_min=year_min,
243
+ year_max=year_max,
244
+ )
229
245
 
230
246
  if not papers:
247
+ year_filter_msg = ""
248
+ if year_min or year_max:
249
+ year_range = f" ({year_min or 'earliest'}-{year_max or 'latest'})"
250
+ year_filter_msg = f" in year range{year_range}"
231
251
  return [
232
252
  types.TextContent(
233
- type="text", text=f"No papers found for query: {query}"
253
+ type="text",
254
+ text=f"No papers found for query: {query}{year_filter_msg}",
234
255
  )
235
256
  ]
236
257
 
237
258
  # Format the results
238
- result_text = f"Found {len(papers)} IACR papers for query '{query}':\n\n"
259
+ year_filter_msg = ""
260
+ if year_min or year_max:
261
+ year_range = f" ({year_min or 'earliest'}-{year_max or 'latest'})"
262
+ year_filter_msg = f" in year range{year_range}"
263
+ result_text = (
264
+ f"Found {len(papers)} IACR papers for query '{query}'{year_filter_msg}:\n\n"
265
+ )
239
266
  for i, paper in enumerate(papers, 1):
240
267
  result_text += f"{i}. **{paper.title}**\n"
241
268
  result_text += f" - Paper ID: {paper.paper_id}\n"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: all-in-mcp
3
- Version: 0.2.6
3
+ Version: 0.2.7
4
4
  Summary: An MCP (Model Context Protocol) server providing daily-use utility functions and academic paper search capabilities
5
5
  Project-URL: Homepage, https://github.com/jiahaoxiang2000/all-in-mcp
6
6
  Project-URL: Repository, https://github.com/jiahaoxiang2000/all-in-mcp
@@ -78,7 +78,7 @@ All tools are implemented as async MCP endpoints with proper validation and erro
78
78
 
79
79
  ### Prerequisites
80
80
 
81
- - Python 3.12 or higher
81
+ - Python 3.10 or higher
82
82
  - UV package manager
83
83
 
84
84
  ### Installation
@@ -1,14 +1,14 @@
1
1
  all_in_mcp/__init__.py,sha256=REDwcbifpuUnsFAhNowIKCZ-8g6irIzUFTI_f8Aunxk,215
2
2
  all_in_mcp/paper.py,sha256=vSJyC_ehfZX5-ASYG048z8gaD1LKafFdJvR13iQcJRw,7104
3
- all_in_mcp/server.py,sha256=GAb_RUlFi2UyXOASB9IM_fQmHHr5F6bQXbPV8J964pI,24420
3
+ all_in_mcp/server.py,sha256=NQ-AEARpZXafLs_yTUKmSC2I32tLQUVL_KLYdefWdm0,25585
4
4
  all_in_mcp/academic_platforms/__init__.py,sha256=IpI29DMS4_mSmTEa8VkQEiJCl7OyFbswSx7mWSp08P4,285
5
5
  all_in_mcp/academic_platforms/base.py,sha256=VYMp8_tnp7YzXKAXLfr7uUxgvJBNKRyC_NT1uVhBOwY,673
6
6
  all_in_mcp/academic_platforms/crossref.py,sha256=D-wvSwnOocP16m9fA3xJ6VGEpmRPtMmGoFm5MlyPdXE,8707
7
7
  all_in_mcp/academic_platforms/cryptobib.py,sha256=F9N23eojfyAIjnFDPrJAYOpZ_Vi9iHOqNHGtKC6O16c,17360
8
8
  all_in_mcp/academic_platforms/google_scholar.py,sha256=_KLFfIOZeFCGxFOt-nwzm1fgZKMlXOf3HvIjXAYE5cI,8737
9
- all_in_mcp/academic_platforms/iacr.py,sha256=MUPxFycVS0eMsJok71y12RUqjxbRrCReG33V5ORAbfU,15450
10
- all_in_mcp-0.2.6.dist-info/METADATA,sha256=viUPVp5EJXz5XdzgI-ZewGAWZBok5eu2LvSH5QYMjRQ,4242
11
- all_in_mcp-0.2.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
- all_in_mcp-0.2.6.dist-info/entry_points.txt,sha256=FbQOtUQzOIfkMNp4qQV1NTU9K4J7C0XGH9wKKhfK1VM,47
13
- all_in_mcp-0.2.6.dist-info/licenses/LICENSE,sha256=idExTHItK7AC5FVo4H9HKnr6h51Z8BKCEztZPyP8nK8,1062
14
- all_in_mcp-0.2.6.dist-info/RECORD,,
9
+ all_in_mcp/academic_platforms/iacr.py,sha256=CMv3kVvF7NiZJdtvXc8xoGOP-gMNnAkhIETTbYTP75o,15849
10
+ all_in_mcp-0.2.7.dist-info/METADATA,sha256=r2v5qsm0TwWdfUZwFGuaFxVSeyh9PYlarJym8Kt6pFM,4242
11
+ all_in_mcp-0.2.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
12
+ all_in_mcp-0.2.7.dist-info/entry_points.txt,sha256=FbQOtUQzOIfkMNp4qQV1NTU9K4J7C0XGH9wKKhfK1VM,47
13
+ all_in_mcp-0.2.7.dist-info/licenses/LICENSE,sha256=idExTHItK7AC5FVo4H9HKnr6h51Z8BKCEztZPyP8nK8,1062
14
+ all_in_mcp-0.2.7.dist-info/RECORD,,