forrt-research-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SCIENCELIVE_API_KEY | No | Optional API key for the Science Live API. /np/constellation is a public read, so this may be left unset. | |
| SCIENCELIVE_API_BASE | No | Base URL of the Science Live API. Default is production. Set to https://api-dev.sciencelive4all.org to test against the dev deployment. | https://api.sciencelive4all.org |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| constellationA | The FORRT chain(s) reachable from a published nanopub URI, as a compact projection you can actually read. Call this to see an existing chain — before starting a replication (what has already been done?), when extending someone else's chain, or to inspect your own after publishing. The raw Science Live constellation is ~330 KB for one chain, of which ~95 %
is a depth-5 neighbourhood of UNRELATED chains reachable through shared
links (on the marine-heatwave chain, 64 of 98 nodes are other studies' AIDA
statements). This returns the chains, the apex CiTO, any Research Synthesis,
and the Quote/Question anchors attributable to this paper — and drops the
rest, reporting how much it dropped under Read
|
| prior_workA | What has already been claimed about a paper — the starting point for new work, whether that work is a replication or a fresh study. Given any published nanopub URI in a constellation, returns one entry per
completed chain: the claim type, what was tested ( Use it to avoid duplicating an existing replication, to choose a CiTO
relation relative to prior work ( |
| verify_quoteA | Prove that a candidate quotation is really in a source PDF, before it is published as verbatim. Call this on EVERY quotation destined for a Quote-with-comment nanopub. You choose which sentence carries the paper's claim — that is judgement. This decides whether the sentence is admissible, and that is not: it is a string search, and anyone can re-run it and get the same answer. Returns a graded verdict with the page, character offsets and the file's SHA-256 as evidence: exact byte-identical to the extracted page text normalized matched after whitespace / ligature / typographic punctuation / line-break-hyphen repair extraction_tolerant additionally ignored hyphens and punctuation spacing not_found NOT in this PDF — do not publish it as a quotation A tier below On |
| constellation_rawA | The unprojected For debugging the graph itself or investigating an upstream data problem.
Prefer |
| template_fieldsA | The exact form fields of one FORRT chain step, from the live template. Call this BEFORE drafting any nanopub field. A nanopub template is the
schema for its step, so this is what makes "never invent a field name" a
lookup rather than a rule you have to remember: it returns the real field
ids, prompts, whether each is required or repeatable, the length/format
constraints (
Check |
| vocabularyA | The allowed values of a FORRT controlled vocabulary, from its template. Use it whenever a draft needs a claim type, a study type, a validation status, a confidence level, or a CiTO relation. Every term comes from the real restricted-choice field on the real template (or the value-list nanopub it points at), so a value returned here is one the form will actually accept — and nothing else is. Names: claim_type, study_type, validation_status, confidence_level, cito_relation, pico_question_type. Three worth reading before you draft:
|
| list_schemasA | Which chain steps and vocabularies this server can look up. Cheap, offline, and no network. Call it first if you are unsure what to pass
to |
| resolve_doiA | Does this DOI resolve, and to what? Call it on every DOI destined for a nanopub field, On success it returns the registered title, authors, year, container and
type, so you can confirm it is the paper you mean rather than merely a paper
that exists. Accepts bare ( |
| wikidata_lookupA | Find real Wikidata items for a term, and type-check them. Call it for every Wikidata topic or keyword destined for a nanopub field. It returns candidates with their descriptions and real P31/P279 types; it deliberately does NOT choose one, because picking the right sense of an ambiguous label is a judgement. What it guarantees is that the QID you publish exists and is what you say it is. Pass A zero-candidate result means leave the field empty or try another label. Never fall back to a QID from memory. |
| validate_draftA | Check one drafted nanopub against its template and the real world. Run this on every draft before publishing. It is the pre-flight checklist in
error would publish something false, or be rejected by the form warning a human should look, but it may be intentional info checked and fine, or deliberately not checked Three placeholder conventions are distinguished, because only one is a
problem:
|
| validate_draftsA | Check every draft in a The whole-chain pre-flight: run it before starting Phase 5b, and again
before announcing. Returns per-draft results plus totals, with
Note what it cannot see: values a draft puts in prose or a markdown table
rather than behind a |
| verify_chainA | Verify a published FORRT chain. Run this before announcing it anywhere. Point it at a What it checks:
A step reported as "not enumerated by the walk but its TriG resolves" is fine, not a warning: the constellation legitimately stops short of Quote, AIDA and Claim.
|
| validate_chain_draftA | Check Run this at the end of Phase 5b, after This file — not the markdown drafts — is what the wizard pre-fills each step
from, and therefore what a human reviews and signs. What it catches that reading the file cannot:
Fields the wizard fills itself are exempt, not reported missing: |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool has a clearly distinct purpose: validation (validate_draft, validate_drafts, validate_chain_draft, verify_chain, verify_quote), lookup (wikidata_lookup, template_fields, vocabulary, resolve_doi, list_schemas), and chain exploration (constellation, constellation_raw, prior_work). The validation tools are distinguished by their target (individual draft vs directory vs chain-draft vs published chain vs quotation), and the lookup tools are distinguished by what they return. Even the two constellation tools are clearly separated by raw vs projected output.
Tool names follow a consistent pattern: verb_noun (validate_draft, validate_drafts, validate_chain_draft, verify_chain, verify_quote, resolve_doi, list_schemas, template_fields, wikidata_lookup) or noun-only (constellation, constellation_raw, prior_work, vocabulary). The noun-only names are understandable but break the verb_noun pattern, and 'constellation_raw' uses an adjective suffix. Overall consistent and readable.
13 tools is well within the ideal range (3-15) and each tool serves a distinct, necessary function for the FORRT nanopub workflow: validation (5 tools), lookup (5 tools), and chain exploration (3 tools). The count matches the server's purpose of supporting drafting, validating, and publishing nanopub chains.
The tool surface covers the full workflow: template lookup, vocabulary lookup, Wikidata lookup, DOI resolution, draft validation (individual and batch), chain-draft validation, published chain verification, quotation verification, and chain exploration. Minor gaps exist: there is no tool for creating or publishing a nanopub (the server is validation/lookup only), and no tool for exploring a single step's details beyond template_fields. However, for the server's stated purpose (research assistance, not publishing), the coverage is strong.