Skip to main content
Glama
theepicsaxguy

OpenCollective MCP Server

OpenCollective MCP Server

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.

What is it?

This MCP server exposes 22 tools that let AI agents interact with:

  • OpenCollective GraphQL API v2 — Manage collectives, submit expenses, process payments, query transactions, and handle members

  • Hetzner Cloud invoices — Automatically fetch, parse, and reconcile hosting invoices

  • Cloudflare billing — Track CDN and hosting costs via the billing history API

The Problem

If you run an OpenCollective-backed project with infrastructure on Hetzner, you face a tedious monthly ritual:

  1. Log into Hetzner → navigate to invoices → download the PDF

  2. Manually extract the amount, date, and line items

  3. Log into OpenCollective → create a new expense → copy-paste the data

  4. Submit and wait for approval

Repeat every month. Forever.

This MCP automates it.

Who is it for?

  • Open collective maintainers who want to automate expense workflows

  • DevOps engineers running infrastructure on Hetzner who track costs via OpenCollective

  • AI developers building agents that need to manage budgets, expenses, or financial reporting

  • Bookkeepers tired of copy-pasting invoice data between systems

What can it do?

OpenCollective Operations (13 tools)

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

Hetzner Operations (6 tools)

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

Cloudflare Operations (3 tools)

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

The Monthly Bookkeeping Workflow

# 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.

What it's NOT

  • Not a replacement for human judgment — Expenses still need approval based on your collective's policies

  • Not a financial advisory tool — It moves data, not money; you control the payouts

  • Not limited to Hetzner — The oc_execute_graphql tool lets you run any OpenCollective operation, so you can manage Stripe payouts, Wise transfers, or budget forecasting

  • Not a GUI — It's a backend for AI agents; use the OpenCollective dashboard for manual tasks

Quick Start

1. Clone and install

git clone https://github.com/your-org/opencollective-mcp.git cd opencollective-mcp pip install -e .

2. Configure environment

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

3. Run the server

# Direct python -m opencollective_mcp # Or via installed script opencollective-mcp

4. Connect to Claude Desktop

Add to your ~/.claude.json:

{ "mcpServers": { "opencollective": { "command": "python", "args": ["-m", "opencollective_mcp"], "env": { "OPENCOLLECTIVE_TOKEN": "your-token", "HETZNER_ACCOUNT_EMAIL": "you@example.com", "HETZNER_ACCOUNT_PASSWORD": "your-password", "CLOUDFLARE_API_TOKEN": "your-cloudflare-token" } } } }

Why build this?

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.

License

Apache License 2.0


Built with FastMCP, httpx, and Playwright.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/theepicsaxguy/opencollective-hetzner-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server