Skip to main content
Glama
README.md
<p align="center">
  <img src="docs/assets/logo.svg" width="96" alt="">
</p>

<h1 align="center">probo-mcp</h1>

<p align="center">
  A read-only <a href="https://modelcontextprotocol.io">MCP</a> server for <a href="https://probo.dk">EG ProBo</a> owners' association portals.<br>
  Ask Claude what's new, summarise meeting papers, search the document archive, or browse it all in the chat.
</p>

<p align="center">
  <a href="https://github.com/kiliantscherny/probo-mcp/actions/workflows/ci.yml"><img src="https://github.com/kiliantscherny/probo-mcp/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
  <a href="https://kiliantscherny.github.io/probo-mcp/"><img src="https://img.shields.io/badge/docs-zensical-c4512b" alt="Docs"></a>
  <img src="https://img.shields.io/badge/python-3.12%20%7C%203.13%20%7C%203.14-blue" alt="Python">
  <img src="https://img.shields.io/badge/MCP-2026--07--28%20%2B%202025--11--25-6e56cf" alt="MCP protocol">
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"></a>
</p>

<p align="center"><img src="docs/assets/browser.png" alt="The interactive ProBo browser" width="820"></p>

**[📖 Documentation](https://kiliantscherny.github.io/probo-mcp/)** ·
[Claude Desktop](https://kiliantscherny.github.io/probo-mcp/get-started/claude-desktop/) ·
[Claude Code](https://kiliantscherny.github.io/probo-mcp/get-started/claude-code/) ·
[How it works](https://kiliantscherny.github.io/probo-mcp/how-it-works/) ·
[MCP 2.0 showcase](https://kiliantscherny.github.io/probo-mcp/mcp-showcase/)

## Features

- **Messages, news, documents and info pages** as tools with structured output, plus `probo://` resources with argument completion.
- **Search the whole document archive** by upload date or name, with progress updates, and read PDFs as text.
- **An interactive ProBo browser** (an MCP App) right inside Claude Desktop.
- **Prompts** for "what's new", summarising a document, and preparing for the general meeting.
- **Read-only by construction**: an allowlist of routes is checked before every request, and the only thing ever submitted is the login form.
- **1Password-friendly**: any setting can be an `op://` reference.
- **One-click Claude Desktop extension** (`.mcpb`).

## Quick start

**Claude Desktop:** download the `.mcpb` from the [latest release](https://github.com/kiliantscherny/probo-mcp/releases/latest), double-click it, and enter your ProBo address and login.

**Claude Code:**

```sh
claude mcp add probo -s user \
  -e PROBO_BASE_URL=https://<association>.probo.dk \
  -e PROBO_USERNAME=you@example.com \
  -e PROBO_PASSWORD='op://Private/ProBo/password' \
  -- uvx --from git+https://github.com/kiliantscherny/probo-mcp probo-mcp
```

Then ask: *"What's new in ProBo this week?"*

## Development

```sh
uv sync
uv run tox          # tests on 3.12–3.14, ruff, ty, docs
```

See the [development guide](https://kiliantscherny.github.io/probo-mcp/development/).

---

Unofficial; not affiliated with or endorsed by EG A/S. It reads the same pages you see in your browser,
so a ProBo redesign can temporarily break individual tools.

TDQS

A3.5/5.0

Scored across 13 tools

Disambiguation4/5

Most tools target distinct resources (messages, news, info pages, documents), but the three document-listing tools (list_documents, recent_documents, find_documents) and the two overview tools (get_overview, open_probo_browser) overlap. The descriptions do mitigate this—recent_documents explicitly points to find_documents for date-range queries, and open_probo_browser notes it mirrors get_overview—so confusion is limited but real.

Naming Consistency4/5

The set mostly follows a clean verb_noun pattern (list_messages, get_message, list_news, get_news, read_document, download_document, find_documents, get_info_page). Deviations are minor: recent_documents drops the verb, and open_probo_browser is a longer verb_noun_noun form, but overall readability and consistency are strong.

Tool Count5/5

With 13 tools for a single portal domain (messages, news, documents, info pages), each tool earns its place and there is no filler. The count sits comfortably in the well-scoped 3-15 range.

Completeness4/5

Read coverage is thorough across every content type the portal exposes (list + get for messages, news, info pages; multiple document access paths). However, there are no write or interaction operations (e.g. sending/reply to a message, uploading a document), which may be an intentional read-only scope but leaves a gap in the full lifecycle.

Maintenance

ActivityMaintained
ResponsivenessNo issues