academia-mcp 1.7.2__tar.gz → 1.7.4__tar.gz

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.
Files changed (46) hide show
  1. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/PKG-INFO +1 -1
  2. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/review.py +3 -1
  3. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/s2_citations.py +9 -7
  4. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/PKG-INFO +1 -1
  5. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/pyproject.toml +1 -1
  6. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_s2_citations.py +4 -10
  7. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_web_search.py +0 -1
  8. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/LICENSE +0 -0
  9. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/README.md +0 -0
  10. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/__init__.py +0 -0
  11. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/__main__.py +0 -0
  12. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/files.py +0 -0
  13. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/latex_templates/agents4science_2025/agents4science_2025.sty +0 -0
  14. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/latex_templates/agents4science_2025/agents4science_2025.tex +0 -0
  15. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/llm.py +0 -0
  16. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/pdf.py +0 -0
  17. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/py.typed +0 -0
  18. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/server.py +0 -0
  19. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/__init__.py +0 -0
  20. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/anthology_search.py +0 -0
  21. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/arxiv_download.py +0 -0
  22. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/arxiv_search.py +0 -0
  23. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/bitflip.py +0 -0
  24. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/document_qa.py +0 -0
  25. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/hf_datasets_search.py +0 -0
  26. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/latex.py +0 -0
  27. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/py.typed +0 -0
  28. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/visit_webpage.py +0 -0
  29. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/web_search.py +0 -0
  30. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/utils.py +0 -0
  31. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/SOURCES.txt +0 -0
  32. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/dependency_links.txt +0 -0
  33. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/entry_points.txt +0 -0
  34. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/requires.txt +0 -0
  35. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/top_level.txt +0 -0
  36. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/setup.cfg +0 -0
  37. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_anthology_search.py +0 -0
  38. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_arxiv_download.py +0 -0
  39. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_arxiv_search.py +0 -0
  40. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_bitflip.py +0 -0
  41. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_document_qa.py +0 -0
  42. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_extract_json.py +0 -0
  43. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_hf_dataset_search.py +0 -0
  44. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_latex.py +0 -0
  45. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_review.py +0 -0
  46. {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_visit_webpage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: academia-mcp
3
- Version: 1.7.2
3
+ Version: 1.7.4
4
4
  Summary: MCP server that provides different tools to search for scientific publications
5
5
  Author-email: Ilya Gusev <phoenixilya@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/IlyaGusev/academia_mcp
@@ -131,8 +131,10 @@ Return the result as a JSON object in the following format:
131
131
  "limitations": "Limitations of the paper",
132
132
  "overall": "Number + short description",
133
133
  "confidence": "Number + short description",
134
- "format_issues": "Format issues",
134
+ "format_issues": "Format issues"
135
135
  }
136
+
137
+ Always produce a correct JSON object.
136
138
  """
137
139
 
138
140
 
@@ -7,9 +7,9 @@ from typing import Optional, List, Dict, Any
7
7
  from academia_mcp.utils import get_with_retries
8
8
 
9
9
 
10
- OLD_API_URL_TEMPLATE = "https://api.semanticscholar.org/v1/paper/{paper_id}"
11
- GRAPH_URL_TEMPLATE = "https://api.semanticscholar.org/graph/v1/paper/{paper_id}/citations?fields={fields}&offset={offset}&limit={limit}"
12
- REVERSED_GRAPH_URL_TEMPLATE = "https://api.semanticscholar.org/graph/v1/paper/{paper_id}/references?fields={fields}&offset={offset}&limit={limit}"
10
+ PAPER_URL_TEMPLATE = "https://api.semanticscholar.org/graph/v1/paper/{paper_id}?fields={fields}"
11
+ CITATIONS_URL_TEMPLATE = "https://api.semanticscholar.org/graph/v1/paper/{paper_id}/citations?fields={fields}&offset={offset}&limit={limit}"
12
+ REFERENCES_URL_TEMPLATE = "https://api.semanticscholar.org/graph/v1/paper/{paper_id}/references?fields={fields}&offset={offset}&limit={limit}"
13
13
  FIELDS = "title,authors,externalIds,venue,citationCount,publicationDate"
14
14
 
15
15
 
@@ -77,17 +77,19 @@ def s2_get_citations(
77
77
  arxiv_id = arxiv_id.split("v")[0]
78
78
  paper_id = f"arxiv:{arxiv_id}"
79
79
 
80
- url = GRAPH_URL_TEMPLATE.format(paper_id=paper_id, fields=FIELDS, offset=offset, limit=limit)
80
+ url = CITATIONS_URL_TEMPLATE.format(
81
+ paper_id=paper_id, fields=FIELDS, offset=offset, limit=limit
82
+ )
81
83
  response = get_with_retries(url)
82
84
  result = response.json()
83
85
  entries = result["data"]
84
86
  total_count = len(result["data"]) + result["offset"]
85
87
 
86
88
  if "next" in result:
87
- paper_url = OLD_API_URL_TEMPLATE.format(paper_id=paper_id)
89
+ paper_url = PAPER_URL_TEMPLATE.format(paper_id=paper_id, fields=FIELDS)
88
90
  paper_response = get_with_retries(paper_url)
89
91
  paper_result = paper_response.json()
90
- total_count = paper_result["numCitedBy"]
92
+ total_count = paper_result["citationCount"]
91
93
 
92
94
  return _format_entries(entries, offset if offset else 0, total_count)
93
95
 
@@ -116,7 +118,7 @@ def s2_get_references(
116
118
  arxiv_id = arxiv_id.split("v")[0]
117
119
  paper_id = f"arxiv:{arxiv_id}"
118
120
 
119
- url = REVERSED_GRAPH_URL_TEMPLATE.format(
121
+ url = REFERENCES_URL_TEMPLATE.format(
120
122
  paper_id=paper_id, fields=FIELDS, offset=offset, limit=limit
121
123
  )
122
124
  response = get_with_retries(url)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: academia-mcp
3
- Version: 1.7.2
3
+ Version: 1.7.4
4
4
  Summary: MCP server that provides different tools to search for scientific publications
5
5
  Author-email: Ilya Gusev <phoenixilya@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/IlyaGusev/academia_mcp
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "academia-mcp"
7
- version = "1.7.2"
7
+ version = "1.7.4"
8
8
  description = "MCP server that provides different tools to search for scientific publications"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -10,19 +10,13 @@ def test_s2_citations_pingpong() -> None:
10
10
 
11
11
 
12
12
  def test_s2_citations_transformers() -> None:
13
- try:
14
- citations = json.loads(s2_get_citations("1706.03762"))
15
- assert citations["total_count"] >= 100000
16
- except Exception:
17
- pass
13
+ citations = json.loads(s2_get_citations("1706.03762"))
14
+ assert citations["total_count"] >= 100000
18
15
 
19
16
 
20
17
  def test_s2_citations_reversed() -> None:
21
- try:
22
- citations = json.loads(s2_get_references("1706.03762"))
23
- assert citations["total_count"] <= 100
24
- except Exception:
25
- pass
18
+ citations = json.loads(s2_get_references("1706.03762"))
19
+ assert citations["total_count"] <= 100
26
20
 
27
21
 
28
22
  def test_s2_citations_versions() -> None:
@@ -5,7 +5,6 @@ from academia_mcp.tools import web_search
5
5
 
6
6
  def test_web_search_base() -> None:
7
7
  result = web_search("autoregressive models path-star graphs", limit=20)
8
- assert "The Mystery of the Pathological" in result
9
8
  results = json.loads(result)
10
9
  assert results
11
10
  assert "score" not in str(results)
File without changes
File without changes
File without changes