# com.datronis/mcp (remote · api.datronis.com)

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

- Trust score: 60/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `api.datronis.com`: 60/100 (this document), [markdown](https://verifymcp.io/servers/com-datronis-mcp/api-mcp.md), [page](https://verifymcp.io/servers/com-datronis-mcp/api-mcp)

## Channel facts

- Endpoint: `https://api.datronis.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 15 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 41/100
  - 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2491 tokens (~155/item across 16 items; 15 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 97% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-datronis-mcp https://api.datronis.com/api/mcp
```

### Codex

```toml
[mcp_servers.com-datronis-mcp]
url = "https://api.datronis.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-datronis-mcp": {
      "type": "remote",
      "url": "https://api.datronis.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-datronis-mcp --url https://api.datronis.com/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-datronis-mcp:
    url: "https://api.datronis.com/api/mcp"
```

### Other

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

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 60, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 59, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 58, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 57, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 56, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 55, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 54)

First indexed and scored.

## MCP tools (15)

### `search_jobs` (~221 tokens)

Search job listings by keyword, location, type, or remote policy. Returns paginated results with title, company, salary, and application URL.

Input parameters:

- `api_key` (string): Optional: your Datronis personal access token (starts with "dtk_"). Generate one at /app/api-keys/. When provided and valid, results are personalized (e.g. includes whether you saved a job).
- `city` (string): Filter by city
- `country` (string): Filter by country (e.g. "United States")
- `job_level` (string): Experience level required
- `job_type` (string): Employment type
- `limit` (integer): Results per page (default: 10)
- `page` (integer): Page number (default: 1)
- `q` (string): Search keyword (title or description)
- `remote_type` (string): Remote work policy
- `salary_min` (integer): Minimum annual salary (USD)
- `skills` (array): Required skills (e.g. ["Python", "React"])

### `get_job` (~102 tokens)

Get full details of a job listing by its slug or ID, including description, requirements, company info, and application link.

Input parameters:

- `api_key` (string): Optional: your Datronis personal access token (starts with "dtk_"). Generate one at /app/api-keys/. When provided and valid, results are personalized (e.g. includes whether you saved a job).
- `slug` (string, required): Job slug (URL-friendly identifier) or job ID

### `get_news` (~104 tokens)

Fetch the latest news articles. Optionally filter by category, locale, or title keyword. Returns title, summary, publication date, and URL.

Input parameters:

- `category_id` (integer): Filter by category ID
- `limit` (integer)
- `locale` (integer): Language locale (1=English, 2=Persian, 3=Spanish, 4=German, ...)
- `offset` (integer)
- `title` (string): Search keyword in title

### `get_categories` (~38 tokens)

List all content categories available on the platform (for filtering news, jobs, etc.).

Input parameters:

- `locale` (integer): Language locale (1=English)

### `search_companies` (~107 tokens)

Search companies on the platform. Returns company name, industry, location, size, website, and open roles count.

Input parameters:

- `country` (string): Filter by country
- `industry` (string): Filter by industry
- `is_hiring` (boolean): Filter to companies actively hiring
- `limit` (integer): Results per page (default: 10)
- `page` (integer): Page number (default: 1)
- `query` (string): Company name or industry keyword

### `get_platform_stats` (~44 tokens)

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.

### `apply_to_job` (~146 tokens)

Submit a job application on behalf of the authenticated user. Requires a personal access token (generate one at /app/api-keys/). If no resume_id is given, your default (or most recently updated) resume is used automatically.

Input parameters:

- `api_key` (string, required): Your Datronis personal access token (starts with "dtk_"). Generate one at /app/api-keys/.
- `cover_letter` (string): Optional cover letter text
- `job_id` (string, required): Job ID to apply for (from search_jobs or get_job)
- `resume_id` (string): Resume to attach. If omitted, your default resume (or most recently updated) is used automatically.

### `list_my_resumes` (~129 tokens)

List the authenticated user's saved resumes. Requires a personal access token (generate one at /app/api-keys/).

Input parameters:

- `api_key` (string, required): Your Datronis personal access token (starts with "dtk_"). Generate one at /app/api-keys/.
- `limit` (integer): Results per page (default: 20)
- `locale` (string): Filter by resume locale
- `page` (integer): Page number (default: 1)
- `query` (string): Search keyword in resume title or headline
- `status` (string): Filter by resume status

### `get_my_applications` (~96 tokens)

Check the status of the authenticated user's job applications. Requires a personal access token (generate one at /app/api-keys/).

Input parameters:

- `api_key` (string, required): Your Datronis personal access token (starts with "dtk_"). Generate one at /app/api-keys/.
- `limit` (integer): Results per page (default: 20)
- `page` (integer): Page number (default: 1)

### `draft_news` (~377 tokens)

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.

Input parameters:

- `allow_self_translation` (boolean): Reserves (does not yet grant a UI for) your permission to personally translate this article into additional locales later, beyond target_locales. Defaults to true — checked by default. Only ever appl…
- `api_key` (string, required): Required: your Datronis personal access token (starts with "dtk_"). Generate one at /app/api-keys/. Publishing is open to anyone with an account — this token exists for rate-limiting and an audit tra…
- `body` (string, required): Article body, English, HTML or plain text
- `category_id` (integer): Category ID; defaults to the site's default news category
- `target_locales` (array): Optional 2-letter locale codes to also translate and publish into (e.g. ["de","ru"]). English is always published first. Omit to publish English-only — broad multi-language publishing is only ever do…
- `title` (string, required): Article title (English)

### `resubmit_news` (~260 tokens)

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.

Input parameters:

- `allow_self_translation` (boolean): Same as draft_news. Omit to leave the article's existing setting unchanged; pass explicitly to change it.
- `api_key` (string, required): Required: your Datronis personal access token (starts with "dtk_"). Generate one at /app/api-keys/. Publishing is open to anyone with an account — this token exists for rate-limiting and an audit tra…
- `body` (string, required): Revised article body (English)
- `news_id` (integer, required): The news_id returned by a previous draft_news call
- `target_locales` (array): Same as draft_news — only used if this revision is approved
- `title` (string, required): Revised article title (English)

### `get_missing_news_translations` (~131 tokens)

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.

Input parameters:

- `limit` (integer): Results per page (default: 20)
- `locale` (string): Optional 2-letter locale code (e.g. "fi") to only return articles missing that specific translation. Omit to see every published article missing at least one locale.
- `page` (integer): Page number (default: 1)

### `submit_news_translation` (~286 tokens)

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.

Input parameters:

- `api_key` (string, required): Required: your Datronis personal access token (starts with "dtk_"). Generate one at /app/api-keys/. Publishing is open to anyone with an account — this token exists for rate-limiting and an audit tra…
- `body` (string, required): Translated body, in the target locale — HTML or plain text, same format as the source
- `locale` (string, required): 2-letter target locale code (e.g. "fi") — see get_missing_news_translations for what a given article still needs
- `news_id` (integer, required): The news_id of the published English source article (from get_news or get_missing_news_translations)
- `title` (string, required): Translated title, in the target locale

### `admin_create_news` (~228 tokens)

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.

Input parameters:

- `api_key` (string, required): Required: your Datronis personal access token (starts with "dtk_"). Generate one at /app/api-keys/. The token must belong to an admin account — a valid but non-admin key is rejected.
- `body` (string, required): Article body, in the target locale — HTML or plain text
- `category_id` (integer): Category ID; defaults to the site's default news category
- `locale` (string, required): 2-letter locale code to publish directly into (e.g. "en", "de") — no English-first requirement, unlike draft_news
- `published` (boolean): Whether the article goes live immediately. Defaults to true. No safety classifier runs either way — admin judgment only.
- `title` (string, required): Article title, in the target locale

### `admin_edit_news` (~216 tokens)

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.

Input parameters:

- `api_key` (string, required): Required: your Datronis personal access token (starts with "dtk_"). Generate one at /app/api-keys/. The token must belong to an admin account — a valid but non-admin key is rejected.
- `body` (string): New body. Omit to leave unchanged.
- `category_id` (integer): New category ID. Omit to leave unchanged.
- `news_id` (integer, required): The news_id of any existing article — not limited to ones the caller created
- `published` (boolean): Publish or unpublish the article. Omit to leave the current status unchanged.
- `title` (string): New title. Omit to leave unchanged.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-datronis-mcp/api-mcp#diagnostics

## Score history

- 2026-08-03: 60
- 2026-08-02: 59
- 2026-08-01: 59
- 2026-07-31: 58
- 2026-07-30: 57
- 2026-07-29: 56
- 2026-07-28: 56
- 2026-07-27: 55
- 2026-07-26: 54

## Links

- Remote endpoint: https://api.datronis.com/api/mcp
- Website: https://datronis.com/ai-agents/
- Changelog RSS feed: https://verifymcp.io/servers/com-datronis-mcp/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-datronis-mcp/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-datronis-mcp/api-mcp
