Mova0.6 pre-release⌕
☰
home / parse / MCP

The parse MCP server

The analysis behind the parse page as tools for AI assistants, over the Model Context Protocol: dependency trees, frames and pragmatics of English text (French experimental). The same analysis is also available as an HTTP API.

Endpoint

https://api.mova.elamur.ai/v1/mcp

Streamable HTTP: a POST carries one JSON-RPC 2.0 message; a request is answered with application/json, a notification with 202. There is no server-initiated stream (GET answers 405) and no session id. Supported protocol revisions: 2025-11-25, 2025-06-18 and 2025-03-26. The same endpoint answers at https://mova.elamur.ai/api/v1/mcp.

Authentication

An API key of an account: sign in at the cabinet, accept the Terms of use (version elamur-2026-11-06) and make a key there. Send it as Authorization: Bearer elmr_…. The account's quota applies (a free account: four times the anonymous limits; see the API page), and the texts are logged as the Privacy policy says. Keys made under an older terms version stop working until you make new ones. The server does not implement the specification's OAuth 2.1 authorization.

Tools

toolargumentsgives
parse_texttext (required), lang (auto, en, fr), fields (tokens, conllu, frames, pragmatics), formatper sentence the language, dialect and style, tokens (form, lemma, UPOS, XPOS, features, head, relation), frames, and for English the speech act, form, indirectness, hedging, polarity, voice, implicatures, presuppositions and irony candidates; the CoNLL-U document
explain_sentencetext (required), lang, formatthe first sentence read aloud in plain English: its language, every relation of its tree, who did what to whom, its speech act

format is md (Markdown, the default), json (also as structuredContent), jsonl (one object per sentence), yaml or conllu. Both tools are read-only and closed-world (readOnlyHint, openWorldHint: false), and deterministic: the same text, language and model versions give the same bytes.

Claude Code

claude mcp add --transport http mova https://api.mova.elamur.ai/v1/mcp \
  --header "Authorization: Bearer elmr_…"

Claude Desktop and other clients that start a local server

The mova-serve binary from the repository is a stdio bridge: it reads one message a line on stdin, forwards each to the endpoint with your key and writes the answers on stdout.

{"mcpServers": {"mova": {"command": "mova-serve",
  "args": ["mcp-stdio", "--endpoint", "https://api.mova.elamur.ai/v1/mcp"],
  "env": {"ELAMUR_API_KEY": "elmr_…"}}}}

Clients that speak Streamable HTTP

{"mcpServers": {"mova": {"type": "http",
  "url": "https://api.mova.elamur.ai/v1/mcp",
  "headers": {"Authorization": "Bearer elmr_…"}}}}

Try it with curl

curl -X POST https://api.mova.elamur.ai/v1/mcp \
  -H 'Authorization: Bearer elmr_…' -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"explain_sentence","arguments":{"text":"Can you pass the salt?"}}}'

Status codes: 401 a missing or unknown key (or one made under older terms), 403 a foreign Origin, 400 an unsupported MCP-Protocol-Version or a message that is not JSON. A quota used up or a busy server is a tool result with isError: true and the reason.

Terms of use · Privacy policy · Parse · API · MCP · Account