academia-mcp 1.7.2__tar.gz → 1.7.3__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.3}/PKG-INFO +1 -1
  2. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/s2_citations.py +9 -7
  3. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp.egg-info/PKG-INFO +1 -1
  4. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/pyproject.toml +1 -1
  5. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_s2_citations.py +4 -10
  6. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/LICENSE +0 -0
  7. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/README.md +0 -0
  8. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/__init__.py +0 -0
  9. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/__main__.py +0 -0
  10. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/files.py +0 -0
  11. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/latex_templates/agents4science_2025/agents4science_2025.sty +0 -0
  12. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/latex_templates/agents4science_2025/agents4science_2025.tex +0 -0
  13. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/llm.py +0 -0
  14. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/pdf.py +0 -0
  15. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/py.typed +0 -0
  16. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/server.py +0 -0
  17. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/__init__.py +0 -0
  18. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/anthology_search.py +0 -0
  19. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/arxiv_download.py +0 -0
  20. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/arxiv_search.py +0 -0
  21. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/bitflip.py +0 -0
  22. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/document_qa.py +0 -0
  23. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/hf_datasets_search.py +0 -0
  24. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/latex.py +0 -0
  25. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/py.typed +0 -0
  26. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/review.py +0 -0
  27. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/visit_webpage.py +0 -0
  28. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/tools/web_search.py +0 -0
  29. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp/utils.py +0 -0
  30. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp.egg-info/SOURCES.txt +0 -0
  31. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp.egg-info/dependency_links.txt +0 -0
  32. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp.egg-info/entry_points.txt +0 -0
  33. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp.egg-info/requires.txt +0 -0
  34. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/academia_mcp.egg-info/top_level.txt +0 -0
  35. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/setup.cfg +0 -0
  36. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_anthology_search.py +0 -0
  37. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_arxiv_download.py +0 -0
  38. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_arxiv_search.py +0 -0
  39. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_bitflip.py +0 -0
  40. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_document_qa.py +0 -0
  41. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_extract_json.py +0 -0
  42. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_hf_dataset_search.py +0 -0
  43. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_latex.py +0 -0
  44. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_review.py +0 -0
  45. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_visit_webpage.py +0 -0
  46. {academia_mcp-1.7.2 → academia_mcp-1.7.3}/tests/test_web_search.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.3
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
@@ -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.3
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.3"
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:
File without changes
File without changes
File without changes