# com.datronis/mcp

> Search and apply to real jobs, browse companies, and read tech news via Datronis's live data.

- name: com.datronis/mcp
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 76/100 flags: no-repository
- quality: 73/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.datronis%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/com.datronis%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "datronis": {
      "type": "http",
      "url": "https://api.datronis.com/api/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 65
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% ~updated-98d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 73/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- warn `tools.annotations`: only 34 of 49 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 34 of 49 tools declare all four hints; missing: get_job (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_my_resumes (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); submit_news_translation (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- warn `tools.token_cost`: about 17,228 tokens to load every tool
- warn `tools.api_dump`: 49 tools, 67% named like REST operations: looks like an API mapped one endpoint per tool

### stability: 75 (weight 15)

- warn `stability.changes`: 30 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 49, about 17,228 tokens to load them all
- tool set hash: bdbaa16aeb57917132cbeeb0af69e8f7
- tools last changed: 2026-10-15T03:51:00.813Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.datronis/mcp.svg)](https://protogrid.dev/servers/com.datronis/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-15 `duplicate_diagram` added
  - Copy an existing diagram (including one that is public but not yours) into a new diagram you own. Requires a personal access token with the "diagram" scope.
- 2026-10-15 `delete_diagram` added
  - Permanently delete a diagram. Cannot be undone. Requires a personal access token with the "diagram" scope.
- 2026-10-15 `update_diagram` added
  - Update a diagram: rename it, replace its Mermaid source entirely, change its theme or Global Settings, or set its node overrides. Only fields you pass change — to edit the diagram's content, pass the complete new `code`, not a fragment. Requires a personal access token with the "diagram" scope.
- 2026-10-15 `create_diagram` added
  - Create a new diagram from Mermaid source — flowcharts, sequence diagrams, mind maps, ER diagrams, Gantt charts, and anything else Mermaid supports. Requires a personal access token with the "diagram" scope.
- 2026-10-15 `get_diagram` added
  - Get one diagram's full Mermaid source, theme, Global Settings, and node overrides. Requires a personal access token with the "diagram" scope.
- 2026-10-15 `list_diagrams` added
  - List the authenticated user's saved diagrams (name, theme, public flag, timestamps — not the full Mermaid source; call get_diagram for that). Requires a personal access token with the "diagram" scope.
- 2026-10-13 `export_form_responses` added
  - Export all responses as CSV text or JSON (up to 2,000 rows here; use the web app for larger exports and Excel). Requires the "forms" scope.
- 2026-10-13 `review_form_response` added
  - Fill in or update your interview/application scorecard for a response. Requires the "forms" scope.
- 2026-10-13 `update_form_response` added
  - Manage a response: move it to a pipeline stage (moves its Kanban card too), tag, star or add private notes. Requires the "forms" scope.
- 2026-10-13 `get_form_insights` added
  - AI insights on a form's responses: a summary, main themes with verbatim quotes, mood and suspicious responses. Sensitive answers are never analysed. Requires the "forms" scope.

Full history: https://api.protogrid.dev/v1/servers/com.datronis%2Fmcp/changes

## Remotes

- https://api.datronis.com/api/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (49)

- `add_memo_cards`: Add 1–500 flashcards to a deck in one call, or update existing ones. mode "add" (default) skips exact duplicates (same front AND back, ignoring case and spacing), so re-sending a list is safe; mode "update" overwrites the answer of cards whose front already exists, keeping their review progress. Returns created/updated/unchanged/skipped counts. Requires a personal access token with the "memo" scope.
- `admin_create_news`: Admin-only: publish a news article directly into any locale, any status, with no safety classifier and no English-first requirement. Requires an api_key belonging to an admin account — a valid but non-admin key is rejected. For non-admin accounts, use draft_news instead. Can also queue selected translations or every missing locale without keeping the MCP request open while translation runs.
- `admin_edit_news`: Admin-only: edit any existing news article — title, body, category, or published status — regardless of who created it or what locale it is in. Requires an api_key belonging to an admin account. Unlike resubmit_news, there is no ownership restriction and no safety classifier; omit a field to leave it unchanged.
- `admin_get_news_translation_status`: Admin-only: inspect translation coverage and durable queue state for a news article. Returns existing locale rows, missing locale codes, per-locale QUEUED/PROCESSING/COMPLETED/FAILED jobs, and complete=true only when all 24 languages exist.
- `admin_translate_news`: Admin-only: durably queue server-generated translations for an existing published news article. Pass target_locales for selected languages, or omit it to fill every missing locale across all 24 supported languages. Existing translations are skipped and each locale has a deterministic task, so repeating the call is safe. This call returns quickly; use admin_get_news_translation_status until complete=true.
- `apply_to_job`: Submit a job application on behalf of the authenticated user. Requires a personal access token (generate one at /app/api-keys/). A resume is mandatory: if no resume_id is given, the user's default (or most recently updated) resume is used automatically, and the call fails with a clear error if the user has no resume yet.
- `create_diagram`: Create a new diagram from Mermaid source — flowcharts, sequence diagrams, mind maps, ER diagrams, Gantt charts, and anything else Mermaid supports. Requires a personal access token with the "diagram" scope.
- `create_form`: Create a form (as a draft). Give a plain-language description and Datronis designs the questions, or pass exact questions, or start from a template. The form is checked like any human-made form and cannot ask for passwords, card numbers, one-time codes or recovery phrases. Call publish_form to make it live. Requires the "forms" scope.
- `create_memo_deck`: Create a new Memo flashcard deck, optionally with its first cards (up to 200). For language learning set front_lang/back_lang (BCP-47, e.g. "es-ES" / "en-US") so the user hears correct free text-to-speech in the browser. Requires a personal access token with the "memo" scope.
- `create_resume`: Create a new resume for the authenticated user by directly specifying its content — name, headline, summary, contact info, work experience, education, skills, projects, certificates. Unlike the human resume builder at /app/resume-builder/, this tool skips layout and styling entirely — Datronis applies sensible defaults, which the user can still adjust later in the builder without losing anything you wrote. Requires a personal access token.
- `delete_diagram`: Permanently delete a diagram. Cannot be undone. Requires a personal access token with the "diagram" scope.
- `draft_news`: Draft and publish a news article. Open to anyone with a Datronis account — the personal access token is for rate-limiting and audit, not permission-gating. Always drafted in English first; an automated safety classifier must return "green" (not political, not likely to be seen as controversial or divisive) before the article goes live. A "flagged" result creates the article unpublished and returns the reasons — use resubmit_news with revised content to try again; there is no way to force-publish a flagged article. Publishes English-only unless target_locales is given.
- `duplicate_diagram`: Copy an existing diagram (including one that is public but not yours) into a new diagram you own. Requires a personal access token with the "diagram" scope.
- `export_form_responses`: Export all responses as CSV text or JSON (up to 2,000 rows here; use the web app for larger exports and Excel). Requires the "forms" scope.
- `export_memo_deck`: Export every card of a deck (front, back, hint, tags) plus the deck's settings as JSON — for a backup, for converting the deck to another format for the user, or for copying it elsewhere. The same shape can be imported back with add_memo_cards or the web importer. Requires a personal access token with the "memo" scope.
- `get_categories`: List all content categories available on the platform (for filtering news, jobs, etc.).
- `get_diagram`: Get one diagram's full Mermaid source, theme, Global Settings, and node overrides. Requires a personal access token with the "diagram" scope.
- `get_form`: Get one form: its questions (with block ids for update_form), logic, theme, settings, validation issues and public link. Requires the "forms" scope.
- `get_form_insights`: AI insights on a form's responses: a summary, main themes with verbatim quotes, mood and suspicious responses. Sensitive answers are never analysed. Requires the "forms" scope.
- `get_form_response`: Get one response with answers, score, files (short-lived download links), reviews and pipeline stage. Requires the "forms" scope.
- `get_form_summary`: Aggregated results per question (counts, averages, NPS, rankings incl. instant-runoff winners) plus views, completion rate and the drop-off funnel. Requires the "forms" scope.
- `get_job`: Get full details of a job listing by its slug or ID, including description, requirements, company info, and application link.
- `get_memo_activity`: The user's study activity per day (reviews, correct answers, cards added), current and longest streak, and retention %. Use it to encourage them or to say which days they studied. Requires a personal access token with the "memo" scope.
- `get_memo_card`: Get one flashcard and exactly where it sits in its spaced-repetition cycle: stage, step (consecutive successful recalls), interval, ease, next due date, lapses, its position in the deck's study queue (queue_position of queue_size), and its last 10 reviews. Requires a personal access token with the "memo" scope.
- `get_memo_study_queue`: Get the cards due today (reviews first, then new cards) so you can quiz the user in chat: show the front, let them answer, reveal the back, then call review_memo_card with how well they did. Requires a personal access token with the "memo" scope.
- `get_missing_news_translations`: List published English news articles and which locale codes they are still missing a translation for. Pass locale to focus on one language at a time. Use this to find work for submit_news_translation — this tool only reports gaps, it never translates anything itself.
- `get_my_applications`: Check the status of the authenticated user's job applications. Requires a personal access token (generate one at /app/api-keys/).
- `get_news`: Fetch the latest news articles. Optionally filter by category, locale, or title keyword. Returns title, summary, publication date, and URL.
- `get_platform_stats`: Get high-level statistics about the Datronis platform: total active jobs, jobs indexed in the last 7 days, companies, countries represented, news articles, and users.
- `list_diagrams`: List the authenticated user's saved diagrams (name, theme, public flag, timestamps — not the full Mermaid source; call get_diagram for that). Requires a personal access token with the "diagram" scope.
- `list_form_responses`: List submitted responses to a form (answers keyed by block id; get_form maps ids to questions). Reviewers only see responses assigned to them; blind review hides identities. Requires the "forms" scope.
- `list_forms`: List the user's Datronis forms (and forms shared with them) with status, mode, response counts and public links. Requires a personal access token with the "forms" scope.
- `list_memo_cards`: List or search flashcards. With deck_id: that deck's cards (newest first). With only a query: search across all the user's decks — use this to find "the card about X" before editing or reviewing it. Every card includes `schedule`: stage (new/learning/review/mature), step, interval_days, due_date and due_in_days. Requires a personal access token with the "memo" scope.
- `list_memo_decks`: List the authenticated user's Memo flashcard decks with card counts, how many cards are due today, and each deck's front/back language. Requires a personal access token with the "memo" scope.
- `list_my_resumes`: List the authenticated user's saved resumes. Requires a personal access token (generate one at /app/api-keys/).
- `publish_form`: Publish the current draft so respondents see it, returning the public link. If the change affects questions that already have answers, it is refused unless confirm_data_impact is true. Requires the "forms" scope.
- `resubmit_news`: Revise and reclassify a news article that draft_news (or a previous resubmit_news call) rejected as "flagged". Every call is its own fully logged classification attempt against the news_id's audit trail — never a silent status flip. Publishes the revision live only if the classifier now returns "green". Only the account that originally submitted the article (via draft_news) may resubmit it — a different account's api_key is rejected, even a valid one.
- `review_form_response`: Fill in or update your interview/application scorecard for a response. Requires the "forms" scope.
- `review_memo_card`: Record the user's answer to a flashcard and reschedule it (SM-2 spaced repetition) — exactly the same as rating it in the web app, and it counts toward their activity calendar and streak. Also use this when the user says they already know a card ("easy" pushes it days ahead). Returns the card's new schedule. Requires a personal access token with the "memo" scope.
- `search_companies`: Search companies on the platform. Returns company name, industry, location, size, website, and open roles count.
- `search_jobs`: Search job listings by keyword, location, type, or remote policy. Returns paginated results with title, company, salary, and application URL.
- `set_form_status`: Close a published form (stop accepting responses) or reopen it. Requires the "forms" scope.
- `submit_news_translation`: Publish your own translation of an already-published English article into a new locale. Unlike draft_news's target_locales (which asks Datronis's own server to translate it), the translated title/body you pass here is published as-is — you (the calling AI) do the translation. Open to anyone with an account, same as draft_news; the source article must already be live, and only one translation may exist per (article, locale) — a locale that already has a translation is rejected, use get_missing_news_translations to find real gaps first.
- `update_diagram`: Update a diagram: rename it, replace its Mermaid source entirely, change its theme or Global Settings, or set its node overrides. Only fields you pass change — to edit the diagram's content, pass the complete new `code`, not a fragment. Requires a personal access token with the "diagram" scope.
- `update_form`: Edit a form's draft with a list of operations (add/update/remove/move questions, set title/theme/layout). All-or-nothing; returns the updated form and validation issues. Requires the "forms" scope.
- `update_form_response`: Manage a response: move it to a pipeline stage (moves its Kanban card too), tag, star or add private notes. Requires the "forms" scope.
- `update_memo_card`: Edit a flashcard's front, back, hint or tags. Only fields you pass change; the card keeps its review schedule. Requires a personal access token with the "memo" scope.
- `update_memo_deck`: Rename or restyle a Memo deck, or change its front/back language. Only fields you pass change. Requires a personal access token with the "memo" scope.
- `update_resume`: Update an existing resume's content and/or metadata (title, locale, status, default flag). By default this merges: fields you omit stay as they are, and any section array you DO send (experiences, education, skills, projects, certificates, customSections) replaces that one section while every other section is untouched — call list_my_resumes first if you need to see current content before adding to it (e.g. appending one job to an existing experience list). Requires a personal access token.
