Search / com.incitefulmed/academic
Inciteful
R0· no sign-inCitation graph search over OpenAlex: similar papers, citation networks, paths and BibTeX export.
v0.1.0 · active · repository · website · descriptor JSON · versions
Search / com.incitefulmed/academic
R0· no sign-inCitation graph search over OpenAlex: similar papers, citation networks, paths and BibTeX export.
v0.1.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"academic": {
"type": "http",
"url": "https://incitefulmed.com/academic/mcp"
}
}
}claude mcp add --transport http academic https://incitefulmed.com/academic/mcp[mcp_servers.academic]
url = "https://incitefulmed.com/academic/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"academic": {
"type": "remote",
"url": "https://incitefulmed.com/academic/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"academic": {
"type": "http",
"url": "https://incitefulmed.com/academic/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=academic&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vaW5jaXRlZnVsbWVkLmNvbS9hY2FkZW1pYy9tY3AifQ%3D%3D"
}{
"servers": {
"academic": {
"type": "http",
"url": "https://incitefulmed.com/academic/mcp"
}
}
}{
"mcpServers": {
"academic": {
"httpUrl": "https://incitefulmed.com/academic/mcp"
}
}
}extensions:
"academic":
enabled: true
name: "academic"
type: streamable_http
uri: "https://incitefulmed.com/academic/mcp"
timeout: 300
protocol.modernprotocol.statelessprotocol.transportprotocol.list_ttlauth.prm, auth.as_metadata, auth.cimdauth.secret_in_urltools.descriptionstools.description_lengthtools.schemastools.annotationstools.directory_hintstools.token_costtools.api_dumptools.hidden_textstability.changes, stability.rug_pull, stability.new_linksdeps.known_vulns, deps.mcp_sdk_version, deps.resolvablesearch_literaturechangedoutput schemaFull history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +dns-namespace +website +reachable +uptime-94% +updated-5d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://incitefulmed.com/academic/mcp streamable-http | none | yes | 94% | 556 ms | 2026-07-28 | 2026-11-14 |
connect_papersread-only | Find citation paths between two papers (DOI, OpenAlex ID or PMID), treating each citation as a link in either direction. Returns the paths, the citation edges (citing → cited), the papers on the paths, and each path's hop count in provenance.hops. extended: true also returns longer paths, aiming for at least 5. It shows how two lines of work relate. |
explore_citation_networkread-only | Map a field by its citations rather than its keywords: rank papers, authors, journals or institutions in the depth-2 citation graph Inciteful builds around 1–500 seed papers. analysis: similar (shared references and co-citation with the seeds), important (local PageRank), reviews (papers citing many others in the graph), recent (PageRank among papers from the last 3 years), authors, journals, institutions; or references / citations: the seeds' reference lists or citing papers from OpenAlex, sorted by global cited_by_count, with the total count. A graph that is not cached yet can take a minute to build. title_all / title_any / title_none filter by words in paper titles. They match titles only (not abstracts or full text), with Porter stemming. year_from / year_to filter by publication year. Title and year filters apply to the graph analyses, not to references or citations. limit is at most 100. Results carry provenance (method, graph size and depth, the SQL run) and diagnostics. |
export_citationsread-only | Build BibTeX or RIS citations for up to 100 papers (DOI, OpenAlex ID, PMID or PMCID) from their OpenAlex records, with entry types, years, volume, issue, pages and escaping. Each row holds one entry; join the entries with a blank line to make a .bib or .ris file. Inputs it cannot match are listed in unresolved. |
find_similar_papersread-only | Ranks papers by their citation links to the seeds, which surfaces related work that keyword search misses. Give 1–500 seed papers (DOIs, OpenAlex IDs or PMIDs); returns the papers most similar to them by citation links, sorted by score. Method: fast similarity, Adamic/Adar plus Salton co-citation on a depth-1 citation graph. With 2–15 seeds, each seed is ranked separately and the rankings are merged by reciprocal rank, so papers that rank well for several seeds come out on top; above 15, it uses Adamic/Adar against a synthetic paper that cites all the seeds. Seeds are left out of the results, and scores rank within one result set. limit is at most 100. Unresolved seeds are listed in diagnostics. |
get_papersread-only | Fetch OpenAlex records for up to 100 papers by DOI, OpenAlex ID (W…), PMID or PMCID: abstract, authors, venue, type and version, is_retracted, PMID/PMCID and the best open-access link with its licence. It does not use the citation graph. Inputs it cannot match come back in unresolved with a reason. |
query_citation_graphread-only | Run your own read-only SQLite query on the citation graph Inciteful builds around 1–500 seed papers (depth 2). It queries the Inciteful citation graph API; schema: https://incitefulmed.com/academic/help/power-users#database-schema Rules: a single SELECT statement. Rows returned: the limit argument if given, else the query's trailing LIMIT, else 100; at most 500. OFFSET (and LIMIT a, b) is rejected; page with a narrower WHERE or an ORDER BY instead. Schema: - papers(paper_id TEXT: OpenAlex ID (W…); doi TEXT without the https://doi.org/ prefix; authors TEXT: JSON array of {author_id, name, sequence, position, institution {id, name, ror}}; num_authors INTEGER; title TEXT; published_year INTEGER; journal TEXT; num_citing INTEGER; num_cited_by INTEGER; distance INTEGER; page_rank REAL; adamic_adar REAL; cocite REAL). num_citing and num_cited_by are in-graph counts (citations between papers in this graph), not global citation counts. - authors(author_id TEXT: OpenAlex author ID without the A prefix; paper_id TEXT; name TEXT; sequence INTEGER, from 0; affiliation TEXT; affiliation_id TEXT: OpenAlex institution ID without the I prefix; ror TEXT: ROR URL; published_year INTEGER; partial_page_rank REAL: the author's share of the paper's page_rank) - metadata(name TEXT, value TEXT): one row each for graph_depth, graph_snapshot, prune_threshold, highly_cited_not_expanded, seeds_not_expanded, paper_count, citation_count. value is TEXT; use CAST(value AS INTEGER) to compare numbers. - title_search(paper_id, search_text): an FTS5 index of the titles with Porter stemming; search_text holds the titles (paper IDs are indexed too). Query it as a table function, starting the match text with the column filter: SELECT paper_id FROM title_search('search_text: vagus AND nerve'). AND, OR, NOT and parentheses work; bm25(title_search) ranks matches, smaller is better. - title_terms(term, doc_count): the stemmed title terms and the number of papers each appears in, leaving out a few common words. - The Research Organization Registry (active organizations), attached as ror; join on authors.ror = ror.organizations.ror_url: organizations(ror_id, ror_url, display_name, status, established, types, country_code, country_name, city, latitude, longitude), names(ror_id, name, name_types, language), external_ids(ror_id, id_type, preferred_id, external_id), relationships(ror_id, related_ror_id, related_name, relationship_type). What the schema cannot tell you: - There is no edge table, so SQL cannot tell which papers cite which. - Papers with no citation inside the graph have NULL num_citing, num_cited_by, distance, page_rank, adamic_adar and cocite. - With one seed, the seed is at distance 0, its citing and cited papers at 1 and their neighbours at 2, so distance > 0 leaves the seed out. With several seeds a synthetic paper W0 ("Temp Paper", year 1900) cites every seed: W0 is at distance 0, the seeds at 1 and their neighbours at 2, so distance > 1 leaves out W0 and the seeds; otherwise add paper_id <> 'W0'. Then cocite is NULL in every row (nothing cites W0) and adamic_adar is measured against W0. Examples: 1. One seed: the highest-PageRank papers since 2020 with "stimulation" in the title: SELECT paper_id, title, published_year, page_rank FROM papers WHERE distance > 0 AND published_year >= 2020 AND paper_id IN (SELECT paper_id FROM title_search('search_text: stimulation')) ORDER BY page_rank DESC LIMIT 20 2. Authors ranked by their share of PageRank: SELECT author_id, name, COUNT(*) AS papers, SUM(partial_page_rank) AS influence FROM authors GROUP BY author_id, name ORDER BY influence DESC LIMIT 20 |
read_paperread-only | Read the full text of an open-access paper from PubMed Central (PMC BioC) in chunks: pass offset (0 to start) and max_chars (up to 40000), then continue from next_offset until it is null. Returns the article's licence and a sha256 of the whole text. When PMC has no text for the paper, returns candidate open-access links (publisher or repository) in rows instead. Accepts a DOI, OpenAlex ID, PMID or PMCID. |
search_literatureread-only | A live keyword search of OpenAlex (CC0 metadata), not of the citation graph snapshot. It matches titles, abstracts and full text where OpenAlex has it, ranked by relevance. Use it to find seed papers when you have a topic but no DOIs yet. Keyword matches miss related work that uses different words, which the citation graph finds. It is not a systematic search. Returns OpenAlex ID, DOI, title, year, venue, global cited_by_count, type, is_retracted and has_abstract; page with next_cursor. limit is at most 50. Rows carry no abstracts or authors. |
Schemas: list_tools.
{
"name": "com.incitefulmed/academic",
"icons": [
{
"src": "https://incitefulmed.com/academic/mcp/assets/icon.png",
"sizes": [
"512x512"
],
"mimeType": "image/png"
}
],
"title": "Inciteful",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://incitefulmed.com/academic/mcp",
"type": "streamable-http"
}
],
"version": "0.1.0",
"repository": {
"id": "1373530266",
"url": "https://github.com/inciteful-xyz/inciteful-mcp",
"source": "github"
},
"websiteUrl": "https://incitefulmed.com/academic/mcp",
"description": "Citation graph search over OpenAlex: similar papers, citation networks, paths and BibTeX export."
}