loading…
Search for a command to run...
loading…
Provides programmatic access to OpenCollective and Hetzner Cloud to automate bookkeeping, collective management, and invoice handling. It enables AI agents to m
Provides programmatic access to OpenCollective and Hetzner Cloud to automate bookkeeping, collective management, and invoice handling. It enables AI agents to manage expenses, query transactions, and automatically reconcile hosting invoices without manual intervention.
A Model Context Protocol server that gives AI agents programmatic access to OpenCollective, Hetzner Cloud, and Cloudflare — enabling automated bookkeeping, collective management, and invoice handling without manual intervention.
This MCP server exposes 22 tools that let AI agents interact with:
If you run an OpenCollective-backed project with infrastructure on Hetzner, you face a tedious monthly ritual:
Repeat every month. Forever.
This MCP automates it.
| Tool | What it does |
|---|---|
oc_get_account |
Get detailed info about any collective (balance, stats, social links) |
oc_search_accounts |
Search across all OpenCollective accounts |
oc_get_logged_in_account |
Get the authenticated user's account |
oc_edit_account |
Update collective profile (name, description, tags, currency) |
oc_get_members |
List members, backers, and their donation totals |
oc_list_expenses |
Query expenses with rich filters (status, type, date, tags) |
oc_get_expense |
Get full expense details by ID |
oc_create_expense |
Submit new expenses (INVOICE, RECEIPT, GRANT, etc.) |
oc_edit_expense |
Modify existing expenses |
oc_delete_expense |
Remove expenses |
oc_process_expense |
Approve, reject, pay, hold, or release expenses |
oc_list_transactions |
Query the ledger (credits/debits, linked expenses) |
oc_execute_graphql |
Escape hatch for any GraphQL operation |
| Tool | What it does |
|---|---|
hetzner_list_invoices |
List all invoices (paginated) |
hetzner_get_invoice |
Get a specific invoice by ID |
hetzner_get_latest_invoice |
Fetch the most recent invoice |
hetzner_get_invoice_pdf |
Download invoice as PDF (base64) |
hetzner_parse_invoice_pdf |
Extract structured data from invoice PDF |
hetzner_get_invoice_details |
Get line-item breakdown from usage portal |
| Tool | What it does |
|---|---|
cloudflare_list_invoices |
List billing history (paginated). Auto-converts USD to EUR using historical ECB rates |
cloudflare_get_invoice |
Get a specific billing item by ID. Includes EUR conversion |
cloudflare_get_latest_invoice |
Fetch the most recent billing item. Returns amount_cents_eur ready for OpenCollective |
# 1. Fetch the latest Hetzner invoice
invoice = hetzner_get_latest_invoice()
# 2. Submit it as an expense to your collective
oc_create_expense(
account_slug="my-collective",
description=f"Hetzner Cloud - {invoice['date']}",
expense_type="INVOICE",
payee_slug="my-org",
items=[{
"description": f"Cloud services - {invoice['date']}",
"amount_cents": invoice['amount_cents'],
"currency": "EUR"
}],
tags=["hetzner", "hosting"]
)
# For Cloudflare (automatically converts USD to EUR)
invoice = cloudflare_get_latest_invoice()
oc_create_expense(
account_slug="my-collective",
description=f"Cloudflare - {invoice['date']}",
expense_type="INVOICE",
payee_slug="my-org",
items=[{
"description": f"Cloudflare services - {invoice['date']}",
"amount_cents": invoice['amount_cents_eur'], # Already converted!
"currency": "EUR"
}],
tags=["cloudflare", "hosting", "cdn"]
)
That's it. One agent prompt = one booked expense.
oc_execute_graphql tool lets you run any OpenCollective operation, so you can manage Stripe payouts, Wise transfers, or budget forecastinggit clone https://github.com/your-org/opencollective-mcp.git
cd opencollective-mcp
pip install -e .
Copy .env.example to .env and fill in:
cp .env.example .env
# Edit .env with your credentials
| Variable | Required for | How to get it |
|---|---|---|
OPENCOLLECTIVE_TOKEN |
Write operations | OpenCollective dashboard → For Developers → Personal Tokens |
HETZNER_ACCOUNT_EMAIL |
Hetzner invoice tools | Your Hetzner account email |
HETZNER_ACCOUNT_PASSWORD |
Hetzner invoice tools | Your Hetzner password |
HETZNER_TOTP_SECRET |
Hetzner invoice tools (if 2FA) | Shown when you enable 2FA |
CLOUDFLARE_API_TOKEN |
Cloudflare billing tools | Cloudflare dashboard → My Profile → API Tokens → Create Token with "Billing:Read" permission |
# Direct
python -m opencollective_mcp
# Or via installed script
opencollective-mcp
Add to your ~/.claude.json:
{
"mcpServers": {
"opencollective": {
"command": "python",
"args": ["-m", "opencollective_mcp"],
"env": {
"OPENCOLLECTIVE_TOKEN": "your-token",
"HETZNER_ACCOUNT_EMAIL": "[email protected]",
"HETZNER_ACCOUNT_PASSWORD": "your-password",
"CLOUDFLARE_API_TOKEN": "your-cloudflare-token"
}
}
}
}
Because infrastructure costs should be visible, automated, and auditable — exactly what OpenCollective provides for open source projects.
We built this to solve our own bookkeeping pain: tracking Hetzner hosting costs for Going Dark and automatically submitting them as expenses each month. Now our AI agent does it.
If you run a collective with cloud infrastructure, this saves you 15–30 minutes every month — and eliminates human error from manual data entry.
Apache License 2.0
Built with FastMCP, httpx, and Playwright.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"opencollective-mcp-server": {
"command": "npx",
"args": []
}
}
}