# `io.github.Ishan73744/aurelmark` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/io.github.Ishan73744/aurelmark
- JSON: https://anlyon.dev/api/v1/servers/io.github.Ishan73744/aurelmark
- Version: 0.4.5 (active)
- Publisher: io.github.Ishan73744 (GitHub account)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Repository: https://github.com/Ishan73744/Money-2
- Metadata from the official MCP Registry, synced 2026-10-22T04:17:39.420Z

Title and description, as the publisher wrote them:

```untrusted-server-text
Aurelmark
EU compliance facts with sources: TED tender deadline changes, CBAM values, EU deadlines, EUDR scope
```

Scanned 2026-10-22T04:17:57.074Z over streamable-http.

**14 tools: 1 do something that can't be undone, 8 change things and 5 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 1 | ask |
| Changes things | write | 8 | ask |
| Only reads | read | 5 | allow |

## Exfil surface

14 private-data -> untrusted-input -> outbound paths in this server alone. Denying 1 outbound tool breaks every one: `mcp__aurelmark__eu_compliance_deadlines`.

| Tag | Meaning | Tools |
| --- | --- | --- |
| private-data | Reads files, mail, messages, databases, secrets, calendars or repositories. | `mcp__aurelmark__sanctions_list_changes` |
| untrusted-input | Brings in text someone else can write: web pages, inbound email, messages, issues and comments. | `mcp__aurelmark__cbam_certificate_price` `mcp__aurelmark__cbam_countries` `mcp__aurelmark__cbam_default_values` `mcp__aurelmark__eu_compliance_deadline` `mcp__aurelmark__eu_compliance_deadlines` `mcp__aurelmark__eu_contract_awards` `mcp__aurelmark__eudr_products` `mcp__aurelmark__eudr_scope` `mcp__aurelmark__get_eu_contract_award` `mcp__aurelmark__get_tender_deadline_changes` `mcp__aurelmark__list_watched_tenders` `mcp__aurelmark__sanctions_entry` `mcp__aurelmark__sanctions_list_changes` `mcp__aurelmark__sanctions_search` |
| outbound | Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL. | `mcp__aurelmark__eu_compliance_deadlines` |

| Private data | Untrusted input | Outbound |
| --- | --- | --- |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__cbam_certificate_price` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__cbam_countries` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__cbam_default_values` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__eu_compliance_deadline` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__eu_compliance_deadlines` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__eu_contract_awards` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__eudr_products` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__eudr_scope` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__get_eu_contract_award` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__get_tender_deadline_changes` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__list_watched_tenders` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__sanctions_entry` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__eu_compliance_deadlines` |
| `mcp__aurelmark__sanctions_list_changes` | `mcp__aurelmark__sanctions_search` | `mcp__aurelmark__eu_compliance_deadlines` |

## Findings

- **warn** Annotations that disagree with the tool in `eu_compliance_deadlines` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "eu_compliance_deadlines" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
```


## Can't be undone (1)

Sends, pays, publishes or merges: once done, it cannot be taken back. Claude Code: ask.

### `eu_compliance_deadlines`

- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.
- Tag outbound: The input takes a destination (input.to): what the tool writes goes there.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Dated EU compliance deadlines (CBAM, EUDR and others), each with its legal source and days remaining. Filter by law, status or date range. Free.
```

## Changes things (8)

Creates or changes something that can be changed back. Claude Code: ask.

### `cbam_certificate_price`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
The current CBAM certificate price used for cost estimates, with its official source. Free.
```

### `cbam_countries`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Countries of origin that have their own CBAM default values. Free.
```

### `cbam_default_values`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
The EU's official CBAM default embedded-emission values for a CN code, by country of origin and year, with the cost per tonne at the current certificate price and links to the implementing regulation. Free.
```

### `eu_compliance_deadline`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
One deadline from eu_compliance_deadlines by its id, with its source and history. Free.
```

### `eu_contract_awards`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
EU public contracts awarded, from official TED contract award notices: who won, the buyer, value, CPV codes, country, award and contract dates and lots, each with the notice link and a SHA-256 proof of the TED answer. Use since (YYYY-MM-DD) for new awards, and filter by CPV code or prefix, buyer country, or winner (company name prefix or official identifier) to answer "has company X won anything since D". Pass next_cursor back as cursor to page or to poll for awards stored since. Uses the free tier, or the caller's API key.
```

### `eudr_products`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
The full list of products in scope of the EUDR (Annex I), with application dates and sources. Free.
```

### `eudr_scope`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Whether a CN or HS code is in scope of the EU Deforestation Regulation (EUDR), which commodity it falls under, and when the rules apply, with sources. Free.
```

### `sanctions_entry`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
One current listing by list and id (as returned by sanctions_search or sanctions_list_changes), with proof of the file it came from. Uses the free tier, or the caller's API key.
```

## Only reads (5)

Looks things up and changes nothing. Claude Code: allow.

### `get_eu_contract_award`

- The name "get_eu_contract_award" says "get": a word for reading.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
One TED contract award notice by its publication number, with winners, buyer, value, CPV, dates, lots, the notice link and proof. Uses the free tier, or the caller's API key.
```

### `get_tender_deadline_changes`

- The name "get_tender_deadline_changes" says "get": a word for reading.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Observed submission-deadline changes, per lot, for a watched TED tender, with the old and new deadline (local and UTC) and links to both official notices. Also returns the current deadlines. Pass next_cursor or checkpoint_cursor back as cursor to page or to poll for new changes. Uses the free tier, or the caller's API key.
```

### `list_watched_tenders`

- The name "list_watched_tenders" says "list": a word for reading.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
The TED tenders Aurelmark watches for submission-deadline changes, with when each was last checked and whether its data is fresh. Free. To have a tender added, email the address in /docs.
```

### `sanctions_list_changes`

- The name "sanctions_list_changes" says "list": a word for reading.
- Tag private-data: The description's first sentence says "file": it reads files.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Listings added to, amended on or removed from the US OFAC SDN and Consolidated lists, the UK Sanctions List and the EU Consolidated Financial Sanctions List, found by comparing each official file with the previous copy. Each change has the listing (names, aliases, type, programmes, countries, listing date), the fields that changed, and proof: the official file's URL, its SHA-256 and date. Pass next_cursor back as cursor to page or to poll. The official publication is authoritative. Uses the free tier, or the caller's API key.
```

### `sanctions_search`

- The name "sanctions_search" says "search": a word for reading.
- Tag untrusted-input: The server marks it openWorldHint: true: it reaches things outside the server's own data.

Description, as the server wrote it:

```untrusted-server-text
Current listings on the US OFAC, UK and EU sanctions lists whose name or alias contains a word starting with the given text (case, accents and punctuation ignored). A lead for screening, not a match decision: confirm against the official list. Uses the free tier, or the caller's API key.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `aurelmark`:

```json
{
  "permissions": {
    "allow": [
      "mcp__aurelmark__list_watched_tenders",
      "mcp__aurelmark__get_tender_deadline_changes",
      "mcp__aurelmark__get_eu_contract_award",
      "mcp__aurelmark__sanctions_list_changes",
      "mcp__aurelmark__sanctions_search"
    ],
    "ask": [
      "mcp__aurelmark__cbam_default_values",
      "mcp__aurelmark__cbam_certificate_price",
      "mcp__aurelmark__cbam_countries",
      "mcp__aurelmark__eu_contract_awards",
      "mcp__aurelmark__sanctions_entry",
      "mcp__aurelmark__eu_compliance_deadlines",
      "mcp__aurelmark__eu_compliance_deadline",
      "mcp__aurelmark__eudr_scope",
      "mcp__aurelmark__eudr_products"
    ],
    "deny": []
  }
}
```

Capability tags behind the rules (a read tagged outbound is asked about):

- `mcp__aurelmark__list_watched_tenders`: untrusted-input
- `mcp__aurelmark__get_tender_deadline_changes`: untrusted-input
- `mcp__aurelmark__cbam_default_values`: untrusted-input
- `mcp__aurelmark__cbam_certificate_price`: untrusted-input
- `mcp__aurelmark__cbam_countries`: untrusted-input
- `mcp__aurelmark__eu_contract_awards`: untrusted-input
- `mcp__aurelmark__get_eu_contract_award`: untrusted-input
- `mcp__aurelmark__sanctions_list_changes`: private-data, untrusted-input
- `mcp__aurelmark__sanctions_search`: untrusted-input
- `mcp__aurelmark__sanctions_entry`: untrusted-input
- `mcp__aurelmark__eu_compliance_deadlines`: untrusted-input, outbound
- `mcp__aurelmark__eu_compliance_deadline`: untrusted-input
- `mcp__aurelmark__eudr_scope`: untrusted-input
- `mcp__aurelmark__eudr_products`: untrusted-input

## Remote posture

What an anonymous client saw at the remote endpoint, last 2026-10-22T14:52:36.034Z, unchanged since 2026-10-22T14:52:36.034Z. No credentials were sent and no tool was called. Values are shown as the endpoint returned them. Method: https://anlyon.dev/methodology#remote-posture

| Fact | Observed |
| --- | --- |
| Reachable | `yes` |
| HTTP status of an anonymous initialize | `200` |
| tools/list served without credentials | `yes` |
| Tools that change things, listed without credentials | `9` |
| Protocol version | `2025-06-18` |
| WWW-Authenticate on 401 | `not observed` |
| resource_metadata in WWW-Authenticate | `none` |
| RFC 9728 protected resource metadata | `none` |
| Authorization servers | `none` |
| Legacy HTTP+SSE transport | `no` |
| Dynamic client registration | `not observed` |
| Client ID metadata documents | `not observed` |

- **high** Tools that change things, listed to anyone ([unauth-remote-writes](https://anlyon.dev/methodology#unauth-remote-writes))

```untrusted-server-text
The endpoint served tools/list without credentials, and the list has 9 tools that change things (1 irreversible, 8 write). Whether a call also works without credentials was not tested: tools are never called.

https://aurelmark.live/mcp: tools/list returned 14 tools to an anonymous client, including eu_compliance_deadlines (irreversible), cbam_default_values (write), cbam_certificate_price (write), cbam_countries (write), eu_contract_awards (write) and 4 more
```
