SolidInvoice
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
MCP server for Xero — global cloud accounting: contacts, invoices, payments, items, reports
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
3/3 Prüfungen bestanden · Läuft auf deinem Computer · ✓ Befehle geprüft am 14. Nov. 2026
Zuerst: Welche KI nutzt du?
Wähle deine App, dann erscheinen die Schritte unten.
Klappt mit Claude, aber erst etwas vorbereiten
Du brauchst einen Schlüssel von MCP Xero (auf der Seite des Anbieters erstellen) · 1 Einstellung(en) auszufüllen (XERO_TENANT_ID) · Installiere zuerst Node.js auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
Kopiere diese Nachricht in einen Claude-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server MCP Xero für Claude auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "mcpServers": { "xero": { "command": "npx", "args": [ "-y", "@codespar/mcp-xero" ], "env": { "XERO_ACCESS_TOKEN": "your-value", "XERO_TENANT_ID": "your-value" } } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Lass bei XERO_ACCESS_TOKEN, XERO_TENANT_ID "your-value" stehen und sag mir, dass ich den echten Wert selbst in die Datei oder das Feld der App einfüge. Bitte mich nie, einen Schlüssel in den Chat zu schreiben. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von MCP Xero wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
node -vMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig
Download-Seite von Node.js öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v
Einmal installieren, gilt für alles, was Node.js braucht
Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.
Wie du einen Schlüssel bekommst, steht unten im README des Anbieters
Das sind Programmeinstellungen, keine Schlüssel. Keine Registrierung nötig; wie vom Autor beschrieben ausfüllen.
XERO_TENANT_ID Xero tenant/organization id sent in the Xero-tenant-id header on every request.Die Beschreibungen sind noch im englischen Original.
SettingsDeveloperEdit Config
{
"mcpServers": {
"xero": {
"command": "npx",
"args": [
"-y",
"@codespar/mcp-xero"
],
"env": {
"XERO_ACCESS_TOKEN": "your-value",
"XERO_TENANT_ID": "your-value"
}
}
}
}Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem
Nutze MCP Xero und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude sagt, dass es MCP Xero nutzt, oder ein Werkzeug von MCP Xero in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
ChatGPT kann MCP Xero noch nicht verbinden
MCP Xero läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen
A · Eine App nutzen, die MCP Xero verbinden kann
B · Andere in Buchhaltung, Finanzen & Steuern, die mit ChatGPT funktionieren
Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden
Klappt mit Claude Code, aber erst etwas vorbereiten
Du brauchst einen Schlüssel von MCP Xero (auf der Seite des Anbieters erstellen) · 1 Einstellung(en) auszufüllen (XERO_TENANT_ID) · Installiere zuerst Node.js auf deinem Computer (nur einmal)
Kopiere diese Nachricht in einen Claude Code-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server MCP Xero für Claude Code auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): claude mcp add --scope user xero --env XERO_ACCESS_TOKEN=your-value --env XERO_TENANT_ID=your-value -- npx -y @codespar/mcp-xero 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Lass bei XERO_ACCESS_TOKEN, XERO_TENANT_ID "your-value" stehen und sag mir, dass ich den echten Wert selbst in die Datei oder das Feld der App einfüge. Bitte mich nie, einen Schlüssel in den Chat zu schreiben. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von MCP Xero wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
node -vMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig
Download-Seite von Node.js öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v
Einmal installieren, gilt für alles, was Node.js braucht
Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.
Wie du einen Schlüssel bekommst, steht unten im README des Anbieters
Das sind Programmeinstellungen, keine Schlüssel. Keine Registrierung nötig; wie vom Autor beschrieben ausfüllen.
XERO_TENANT_ID Xero tenant/organization id sent in the Xero-tenant-id header on every request.Die Beschreibungen sind noch im englischen Original.
Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen
claude mcp add --scope user xero --env XERO_ACCESS_TOKEN=your-value --env XERO_TENANT_ID=your-value -- npx -y @codespar/mcp-xeroErsetze „your-value“ vor dem Enter durch deinen Schlüssel
Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem
MCP Xero sollte in der Liste als verbunden erscheinen
Nutze MCP Xero und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude Code sagt, dass es MCP Xero nutzt, oder ein Werkzeug von MCP Xero in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit Cursor, aber erst etwas vorbereiten
Du brauchst einen Schlüssel von MCP Xero (auf der Seite des Anbieters erstellen) · 1 Einstellung(en) auszufüllen (XERO_TENANT_ID) · Installiere zuerst Node.js auf deinem Computer (nur einmal)
Kopiere diese Nachricht in einen Cursor-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server MCP Xero für Cursor auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "mcpServers": { "xero": { "command": "npx", "args": [ "-y", "@codespar/mcp-xero" ], "env": { "XERO_ACCESS_TOKEN": "your-value", "XERO_TENANT_ID": "your-value" } } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Lass bei XERO_ACCESS_TOKEN, XERO_TENANT_ID "your-value" stehen und sag mir, dass ich den echten Wert selbst in die Datei oder das Feld der App einfüge. Bitte mich nie, einen Schlüssel in den Chat zu schreiben. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von MCP Xero wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
node -vMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig
Download-Seite von Node.js öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v
Einmal installieren, gilt für alles, was Node.js braucht
Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.
Wie du einen Schlüssel bekommst, steht unten im README des Anbieters
Das sind Programmeinstellungen, keine Schlüssel. Keine Registrierung nötig; wie vom Autor beschrieben ausfüllen.
XERO_TENANT_ID Xero tenant/organization id sent in the Xero-tenant-id header on every request.Die Beschreibungen sind noch im englischen Original.
In den Einstellungen von MCP Xero ist XERO_ACCESS_TOKEN, XERO_TENANT_ID leer; trag deinen Schlüssel ein und speichere
Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem
Nutze MCP Xero und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Cursor sagt, dass es MCP Xero nutzt, oder ein Werkzeug von MCP Xero in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit VS Code, aber erst etwas vorbereiten
Du brauchst einen Schlüssel von MCP Xero (auf der Seite des Anbieters erstellen) · 1 Einstellung(en) auszufüllen (XERO_TENANT_ID) · Installiere zuerst Node.js auf deinem Computer (nur einmal)
Kopiere diese Nachricht in einen VS Code-Chat. Die KI prüft deinen Rechner, sagt dir, welche Datei sie ändert, und wartet jedes Mal auf dein OK.
Installiere bitte den MCP server MCP Xero für VS Code auf diesem Rechner, in dieser Reihenfolge: 1) Prüfe Node.js mit node -v. Fehlt es, sag mir, dass ich es von https://nodejs.org/en/download installiere; installiere es nicht selbst. 2) Verwende nur diese Konfiguration (von PopNx MCP geprüft): { "servers": { "xero": { "type": "stdio", "command": "npx", "args": [ "-y", "@codespar/mcp-xero" ], "env": { "XERO_ACCESS_TOKEN": "your-value", "XERO_TENANT_ID": "your-value" } } } } 3) Nenne mir den vollständigen Pfad der Datei, die du änderst, oder den Befehl, den du ausführst, und warte auf mein OK. 4) Lass bei XERO_ACCESS_TOKEN, XERO_TENANT_ID "your-value" stehen und sag mir, dass ich den echten Wert selbst in die Datei oder das Feld der App einfüge. Bitte mich nie, einen Schlüssel in den Chat zu schreiben. 5) Führe das Vereinbarte aus und prüfe, dass die Tools von MCP Xero wirklich erscheinen.Diese Nachricht enthält keinen Schlüssel. Wird einer gebraucht, bittet dich die KI, ihn selbst in die Datei oder das Feld der App einzufügen.
Schon installiert? Zuerst prüfen · Öffne das Terminal, gib diesen Befehl ein und drücke Enter
node -vMac: ⌘ + Leertaste drücken, Terminal eingeben, Enter
Windows: Start öffnen, Windows PowerShell eingeben, dann Öffnen
Noch nicht installiert: Öffne die offizielle Download-Seite, wähle die LTS-Version und den Klick-Installer: .pkg auf dem Mac · .msi unter Windows. Doppelklicken und bis zum Ende durchklicken. Kein curl-Befehl nötig
Download-Seite von Node.js öffnen ↗
Danach das Terminal schließen, neu öffnen und denselben Befehl erneut ausführen. Es muss eine Versionsnummer erscheinen: node -v
Einmal installieren, gilt für alles, was Node.js braucht
Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.
Wie du einen Schlüssel bekommst, steht unten im README des Anbieters
Das sind Programmeinstellungen, keine Schlüssel. Keine Registrierung nötig; wie vom Autor beschrieben ausfüllen.
XERO_TENANT_ID Xero tenant/organization id sent in the Xero-tenant-id header on every request.Die Beschreibungen sind noch im englischen Original.
VS Code fragt nach einer Bestätigung; klicke Install
In den Einstellungen von MCP Xero ist XERO_ACCESS_TOKEN, XERO_TENANT_ID leer; trag deinen Schlüssel ein und speichere
Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem
Nutze MCP Xero und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn VS Code sagt, dass es MCP Xero nutzt, oder ein Werkzeug von MCP Xero in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach
JSON-Einstellungen stehen unten unter „Für Entwickler“
Claude Code
claude mcp add --scope user xero --env XERO_ACCESS_TOKEN=your-value --env XERO_TENANT_ID=your-value -- npx -y @codespar/mcp-xeroClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"xero": {
"command": "npx",
"args": [
"-y",
"@codespar/mcp-xero"
],
"env": {
"XERO_ACCESS_TOKEN": "your-value",
"XERO_TENANT_ID": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"xero": {
"command": "npx",
"args": [
"-y",
"@codespar/mcp-xero"
],
"env": {
"XERO_ACCESS_TOKEN": "your-value",
"XERO_TENANT_ID": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"xero": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@codespar/mcp-xero"
],
"env": {
"XERO_ACCESS_TOKEN": "your-value",
"XERO_TENANT_ID": "your-value"
}
}
}
}XERO_ACCESS_TOKEN geheim erforderlich envXERO_TENANT_ID erforderlich envDie Beschreibungen sind noch im englischen Original.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
npm: @codespar/mcp-xeroBasierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.
Laufen auf deinem Computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 16. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto codespar bestätigt, dem das Repo gehört
Code zuletzt geändert: vor 3 Tagen
Nutzt MIT
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Keine Einträge auf OSV.dev für @codespar/mcp-xero@0.2.2
Prüft nur diese Paketversion, nicht alle Abhängigkeiten · geprüft 15. Nov. 2026
Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.
Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.
Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.
Noch keine Bewertungen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: XERO_ACCESS_TOKEN
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt vor 3 Tagen geändert, und die neueste Version (0.2.2) kam vor 5 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: SolidInvoice, Signal8, Journalit, Tapetide - Indian Stock Market MCP, Twelve Data
Gleiche Kategorie, andere Entwickler, Befehle bereits geprüft. Offizielle zuerst, dann nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
SEC filings, dilution, insider & institutional ownership, and political-trade data for AI agents.
Trading journal in Obsidian. Ask Claude or ChatGPT about your trades; edits are previewed first.
48 tools for ~8,000 NSE & BSE stocks: quotes, screener, financials, filings, FII/DII, options
Real-time and historical market data: stocks, forex, crypto, ETFs, fundamentals and 60+ indicators.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
MCP server for Xero — global cloud accounting for SMBs.
Xero is the #2 global SMB ERP and the leader in the UK, Australia, and New Zealand, with rapid expansion in the US. Paired with QuickBooks, the two platforms cover roughly 80% of global SMB accounting. For LatAm SaaS serving US/UK/AU/NZ customers or with international subsidiaries, Xero is the essential complement to our Brazil-native ERPs (Omie, Conta Azul, Bling, Tiny).
| Tool | Purpose |
|---|---|
create_contact | Create a Xero contact (customer or supplier — Xero uses one unified Contact object with IsCustomer/IsSuppli... |
get_contact | Retrieve a single Xero contact by ContactID (UUID). |
list_contacts | List Xero contacts. |
create_invoice | Create an invoice in Xero. |
get_invoice | Retrieve a single invoice by InvoiceID (UUID) or InvoiceNumber. |
list_invoices | List invoices with optional Xero where-clause filtering. |
email_invoice | Email an AUTHORISED invoice to the contact's email address on file. |
create_payment | Record a payment against an invoice or credit note. |
create_item | Create a Xero inventory/product item. |
list_items | List all items/products in the Xero tenant. |
list_accounts | List the Xero chart of accounts. |
update_contact | Update an existing Xero contact. |
archive_contact | Archive a Xero contact by setting ContactStatus=ARCHIVED. |
update_invoice | Update an existing invoice. |
void_invoice | Void an invoice by setting Status=VOIDED. |
get_payment | Retrieve a single payment by PaymentID. |
list_payments | List payments recorded in Xero. |
create_bank_transaction | Create a bank transaction (SPEND = money out, RECEIVE = money in) directly on a bank account — for transact... |
list_bank_transactions | List bank transactions (spend/receive entries on bank accounts). |
list_organisations | Retrieve the Xero organisation(s) the access token has access to — returns name, base currency, country, fi... |
list_tax_rates | List tax rates configured in the Xero tenant. |
create_credit_note | Create a credit note. |
list_credit_notes | List credit notes. |
get_balance_sheet | Retrieve the Balance Sheet report for the tenant. |
npm install @codespar/mcp-xero
XERO_ACCESS_TOKEN="..." # OAuth2 bearer access token (required, secret)
XERO_TENANT_ID="..." # Xero tenant/organization id (required)
Xero uses OAuth2. Every request includes:
Authorization: Bearer <XERO_ACCESS_TOKEN>
Xero-tenant-id: Accept: application/json Content-Type: application/json
This server assumes a pre-issued access token. OAuth consent, refresh-token rotation, and tenant selection happen upstream (in your OAuth proxy or secrets layer). When the token expires, Xero returns 401 and the tool surfaces the error verbatim — refresh and retry.
# stdio (default — Claude Desktop, Cursor, etc)
npx @codespar/mcp-xero
MCP_HTTP=true MCP_PORT=3000 npx @codespar/mcp-xero
Xero's list endpoints accept a where query param for server-side filtering. Examples:
Name.Contains("ACME")
IsCustomer==true Status=="AUTHORISED" AND Type=="ACCREC" Date>=DateTime(2026,1,1) Contact.ContactID==guid("00000000-0000-0000-0000-000000000000")
Use Xero for companies headquartered or operating outside Brazil (or with international entities). Use the BR-native servers for the local market.
Need governance, budget limits, and audit trails for agent payments? CodeSpar Enterprise adds policy engine, payment routing, and compliance templates on top of these MCP servers.
MIT