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.
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/PKG-INFO +1 -1
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/review.py +3 -1
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/s2_citations.py +9 -7
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/PKG-INFO +1 -1
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/pyproject.toml +1 -1
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_s2_citations.py +4 -10
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_web_search.py +0 -1
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/LICENSE +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/README.md +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/__init__.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/__main__.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/files.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/latex_templates/agents4science_2025/agents4science_2025.sty +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/latex_templates/agents4science_2025/agents4science_2025.tex +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/llm.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/pdf.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/py.typed +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/server.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/__init__.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/anthology_search.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/arxiv_download.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/arxiv_search.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/bitflip.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/document_qa.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/hf_datasets_search.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/latex.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/py.typed +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/visit_webpage.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/tools/web_search.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp/utils.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/SOURCES.txt +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/dependency_links.txt +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/entry_points.txt +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/requires.txt +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/academia_mcp.egg-info/top_level.txt +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/setup.cfg +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_anthology_search.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_arxiv_download.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_arxiv_search.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_bitflip.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_document_qa.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_extract_json.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_hf_dataset_search.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_latex.py +0 -0
- {academia_mcp-1.7.2 → academia_mcp-1.7.4}/tests/test_review.py +0 -0
- {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.
|
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
|
-
|
11
|
-
|
12
|
-
|
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 =
|
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 =
|
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["
|
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 =
|
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.
|
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
|
@@ -10,19 +10,13 @@ def test_s2_citations_pingpong() -> None:
|
|
10
10
|
|
11
11
|
|
12
12
|
def test_s2_citations_transformers() -> None:
|
13
|
-
|
14
|
-
|
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
|
-
|
22
|
-
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|