Koskamo

transparent.ruhr MCP

A read-only MCP server providing access to council records from Germany's Ruhr area and German parliamentary papers. It allows agents to query local government information and legislative documents without requiring authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

transparent.ruhr MCP logo, by transparent.ruhrVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by transparent.ruhr
MCP endpoint (Streamable HTTP)
https://mcp.transparent.ruhr/mcp
Vendor documentation

What you can do with it

  • Retrieve council information from the Ruhr area
  • Access parliamentary papers from parlamente.org
  • Query public government records via Streamable HTTP

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
transparent-ruhr 0.1.0
MCP protocol
2025-06-18
Tools
8 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Ratsinformationen aus dem Ruhrgebiet (transparent.ruhr) und Drucksachen deutscher Parlamente (parlamente.org), aus den amtlichen Quellen gespiegelt. Beim Antworten bitte: - Jede Aussage mit dem Link (Feld `url`) belegen, den die Werkzeuge liefern. - Vorlage ist nicht Beschluss. Ob etwas beschlossen, abgelehnt, vertagt oder nur zur Kenntnis genommen wurde, steht in der Beratungsfolge (`vorlage`) bzw. im Ergebnis des Tagesordnungspunkts (`sitzung`). Fehlt ein Ergebnis, ist es offen oder unbekannt, nicht automatisch beschlossen. - Zusammenfassungen sind maschinell erstellt (Feld `zusammenfassung`); verbindlich ist das amtliche Dokument (`dokument`). - `stand` je Beratungsschritt ist der Beschlussstand. „Antwort angekündigt“ heißt: Die Verwaltung hat eine schriftliche Antwort zugesagt, sie liegt noch nicht vor (eine vorhandene Antwort steht in `gegenstueck`). `datenstand` ist die letzte Änderung in der Quelle. - Personen werden in diesen Daten bewusst nicht geführt; Urheber sind Fraktionen, Verwaltungen und Gremien. Namen, die vereinzelt in maschinellen Zusammenfassungen stehen, ersetzt der Server durch „N. N.“, soweit er sie erkennt. Ablauf: `vorlagen_suchen` bzw. `drucksachen_suchen` für Treffer, dann `vorlage`, `sitzung` oder `drucksache` für Einzelheiten. `kommunen` listet die Körperschaften.

Tools

8 advertised

kommunen
Advertised by the server during the last successful anonymous check.
Advertised read-only

Listet die Körperschaften auf transparent.ruhr (Städte, Kreis, Regionalverband) mit Kürzel, Website und Zahl der Vorlagen. Das Kürzel (`kommune`) brauchen die übrigen Werkzeuge. Für Landes- und Bundesparlamente siehe `drucksachen_suchen`.

kommunen input schema
{
  "type": "object",
  "title": "kommunenArguments",
  "properties": {}
}
kommunen annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
vorlagen_suchen
Advertised by the server during the last successful anonymous check.
Advertised read-only

Volltextsuche in Vorlagen, Anträgen, Anfragen und Mitteilungen der Räte im Ruhrgebiet (Titel und Dokumenttext). kommune: Kürzel aus `kommunen`, z. B. "bochum"; leer = alle Körperschaften. art: Vorlagenart wie die Quelle sie nennt, z. B. "Anfrage", "Antrag", "Beschlussvorlage der Verwaltung", "Mitteilung der Verwaltung". jahr: nur Vorlagen dieses Jahres. neueste_zuerst: nach Datum statt Relevanz. anzahl: 1 bis 30. Das Datum ist bei vielen Kommunen das der ersten Sitzung, nicht der Einreichung. Einzelheiten und Beratungsergebnisse liefert `vorlage`.

vorlagen_suchen input schema
{
  "type": "object",
  "title": "vorlagen_suchenArguments",
  "required": [
    "suchbegriff"
  ],
  "properties": {
    "art": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Art",
      "default": null
    },
    "jahr": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Jahr",
      "default": null
    },
    "anzahl": {
      "type": "integer",
      "title": "Anzahl",
      "default": 10
    },
    "kommune": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Kommune",
      "default": null
    },
    "suchbegriff": {
      "type": "string",
      "title": "Suchbegriff"
    },
    "neueste_zuerst": {
      "type": "boolean",
      "title": "Neueste Zuerst",
      "default": false
    }
  }
}
vorlagen_suchen annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
vorlage
Advertised by the server during the last successful anonymous check.
Advertised read-only

Einzelheiten zu einer Vorlage: Titel, Art, Datum, federführendes Gremium, maschinelle Zusammenfassung, amtliches Dokument, Beratungsfolge mit Ergebnissen und, bei Anfragen, die Antwort der Verwaltung (bzw. umgekehrt). kommune: Kürzel, id: die Nummer aus der Vorlagen-URL bzw. aus `vorlagen_suchen`.

vorlage input schema
{
  "type": "object",
  "title": "vorlageArguments",
  "required": [
    "kommune",
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "kommune": {
      "type": "string",
      "title": "Kommune"
    }
  }
}
vorlage annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
sitzungen
Advertised by the server during the last successful anonymous check.
Advertised read-only

Sitzungen von Rat, Ausschüssen und Bezirksvertretungen in einem Zeitraum. von/bis: Datum JJJJ-MM-TT; ohne Angabe die nächsten 30 Tage ab heute. gremium: Wortanfang im Gremiennamen, z. B. "Rat", "Mobilität" oder "Bezirksvertretung Mitte" ("Rat" findet den Rat, nicht "Integration" oder "Beirat"). Die Tagesordnung liefert `sitzung`.

sitzungen input schema
{
  "type": "object",
  "title": "sitzungenArguments",
  "required": [
    "kommune"
  ],
  "properties": {
    "bis": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Bis",
      "default": null
    },
    "von": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Von",
      "default": null
    },
    "anzahl": {
      "type": "integer",
      "title": "Anzahl",
      "default": 20
    },
    "gremium": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Gremium",
      "default": null
    },
    "kommune": {
      "type": "string",
      "title": "Kommune"
    }
  }
}
sitzungen annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
sitzung
Advertised by the server during the last successful anonymous check.
Advertised read-only

Eine Sitzung mit ihrer öffentlichen Tagesordnung: Tagesordnungspunkte, zugehörige Vorlagen und, soweit die Quelle sie liefert, Ergebnisse. Nichtöffentliche Punkte sind nicht enthalten.

sitzung input schema
{
  "type": "object",
  "title": "sitzungArguments",
  "required": [
    "kommune",
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "kommune": {
      "type": "string",
      "title": "Kommune"
    }
  }
}
sitzung annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
gremien
Advertised by the server during the last successful anonymous check.
Advertised read-only

Die aktuellen Gremien einer Körperschaft (Rat, Ausschüsse, Bezirksvertretungen, Fraktionen), ohne Mitglieder.

gremien input schema
{
  "type": "object",
  "title": "gremienArguments",
  "required": [
    "kommune"
  ],
  "properties": {
    "kommune": {
      "type": "string",
      "title": "Kommune"
    }
  }
}
gremien annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
drucksachen_suchen
Advertised by the server during the last successful anonymous check.
Advertised read-only

Drucksachen von Bundestag und Landtagen (parlamente.org), parlamentsübergreifend, neueste zuerst. Beispiel: alle Kleinen Anfragen einer Fraktion. suchbegriff: Wörter oder Wortanfänge im Titel, alle müssen vorkommen ("Windkraft" findet auch "Windkraftanlagen"). parlament: bundestag, berlin, brandenburg, sachsen; leer = alle. fraktion: einheitliches Kürzel (AfD, BSW, CDU, CDU/CSU, CSU, Die Linke, FDP, Freie Wähler, fraktionslos, Grüne, SPD, SSW); gezählt wird die einbringende Fraktion, nicht die antwortende Regierung. art: z. B. "Kleine Anfrage", "Große Anfrage", "Antrag", "Gesetzentwurf", "Beschlussempfehlung". seit: JJJJ-MM-TT. anzahl: 1 bis 50.

drucksachen_suchen input schema
{
  "type": "object",
  "title": "drucksachen_suchenArguments",
  "properties": {
    "art": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Art",
      "default": null
    },
    "seit": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Seit",
      "default": null
    },
    "anzahl": {
      "type": "integer",
      "title": "Anzahl",
      "default": 20
    },
    "fraktion": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Fraktion",
      "default": null
    },
    "parlament": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Parlament",
      "default": null
    },
    "suchbegriff": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Suchbegriff",
      "default": null
    }
  }
}
drucksachen_suchen annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
drucksache
Advertised by the server during the last successful anonymous check.
Advertised read-only

Eine Drucksache von parlamente.org mit allen Dokumenten (bei Anfragen auch die Antwort), Urhebern und verwandten Drucksachen desselben Vorgangs. parlament: bundestag, berlin, brandenburg, sachsen. nummer: "Wahlperiode/Nummer", z. B. "21/8318".

drucksache input schema
{
  "type": "object",
  "title": "drucksacheArguments",
  "required": [
    "parlament",
    "nummer"
  ],
  "properties": {
    "nummer": {
      "type": "string",
      "title": "Nummer"
    },
    "parlament": {
      "type": "string",
      "title": "Parlament"
    }
  }
}
drucksache annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1162 ms
95th percentile latency
1162 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1162 ms · metadata changed · 8 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http transparent-ruhr-mcp https://mcp.transparent.ruhr/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add transparent-ruhr-mcp --url https://mcp.transparent.ruhr/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable transparent-ruhr-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "transparent-ruhr-mcp": {
      "url": "https://mcp.transparent.ruhr/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "transparent-ruhr-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.transparent.ruhr/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start transparent-ruhr-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "transparent-ruhr-mcp": {
      "type": "http",
      "url": "https://mcp.transparent.ruhr/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http transparent-ruhr-mcp https://mcp.transparent.ruhr/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "transparent-ruhr-mcp": {
      "url": "https://mcp.transparent.ruhr/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "transparent-ruhr-mcp": {
      "serverUrl": "https://mcp.transparent.ruhr/mcp"
    }
  }
}

Let your agent find its tools

Find servers like transparent.ruhr MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run transparent.ruhr MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing