Run the local server
Run the Agoo MCP server on your own computer over stdio, authenticated with an API key, for development, test mode and tightly scoped access.
This is designed and scheduled but not built yet. We document it now so you can plan your integration.
The local server is the same set of tools as the remote server, packaged as an npm command that your assistant starts on your computer. It talks to the assistant over stdio and to Agoo with an API key.
Use it when you want to:
- try the tools against your test-mode sandbox, on any plan
- give an assistant a dedicated key with only the scopes it needs
- use a client that can't sign in with OAuth
- build and debug your own agent on Agoo's tools
For everyday use by people in your organisation, prefer the remote server: it signs each person in, applies their role and sites, and needs no key on anyone's computer.
How it differs from the remote server
| Remote server | Local server | |
|---|---|---|
| Acts as | The person who connected it | The API key, across the whole organisation. Roles and sites don't apply. |
| Permissions | Granted scopes, role and sites | The key's scopes |
| Audit trail | Entries name the person and the app | Entries name the key, for example "Key: Yaw's Claude Desktop (test)" |
| Test mode | No | Yes, with an agoo_sk_test_… key |
| Plans (live mode) | Pro and Enterprise | Pro and Enterprise. Test keys work on every plan. |
The tools, their inputs and outputs, and the write confirmations are the same. See the tools reference.
Requirements
- Node.js 20 or later (
node --version) - A secret API key. Publishable keys (
agoo_pk_…) are refused, because they can't read data.
The install commands on this page will work once @ardent-africa/agoo-mcp is published to npm.
Create a key for the assistant
Give each assistant, on each computer, its own key. Then you can see what it did and revoke it on its own.
Open Console → Developers → API keys
You need to be an admin. Switch the console to Test mode first if you're creating a test key.
Create a secret key with only the scopes it needs
Name it after the person and the client, such as Yaw – Claude Desktop. Tick only the scopes for the tools you want the assistant to have:
| To let the assistant | Tick |
|---|---|
| Answer questions about visits and who is on site | organisation:read, sites:read, visits:read, people:read |
| Also invite visitors and check them out | add visits:write |
| Look up deliveries | add deliveries:read |
| Find slots, book and cancel | add bookings:read, bookings:write |
| Report on attendance and roll calls | add attendance:read, rollcalls:read |
| Search the audit trail | add audit:read |
The server only offers tools whose scope the key has. A key with only read scopes gives a read-only assistant.
Copy the key
It's shown once. Put it straight into your client's configuration (below) or a password manager. If you lose it, revoke it and create another.
Run it
The server reads the key from the AGOO_API_KEY environment variable:
AGOO_API_KEY=agoo_sk_test_… npx -y @ardent-africa/agoo-mcpRun it like this only to check that it starts. It then waits for an MCP client on stdin and writes its log to stderr, for example:
agoo-mcp 1.0.0 · test mode · organisation "Volta Bank (test)" · 14 toolsYour assistant starts and stops the server itself, using one of the configurations below. To pin a major version, use @ardent-africa/agoo-mcp@1 in place of @ardent-africa/agoo-mcp.
Configure your client
In Claude Desktop, open Settings → Developer → Edit Config. This opens claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add Agoo under mcpServers:
{
"mcpServers": {
"agoo": {
"command": "npx",
"args": ["-y", "@ardent-africa/agoo-mcp"],
"env": {
"AGOO_API_KEY": "agoo_sk_test_…"
}
}
}
}Quit Claude Desktop completely and open it again. Agoo appears under Connectors in the + menu of the message box.
Claude Desktop stores the key in this file as plain text. Use a test key or a narrowly scoped key, and don't share or sync the file.
Test mode
With an agoo_sk_test_… key, every tool works on your organisation's test-mode sandbox:
- Invitations, booking confirmations and cancellations are not sent by SMS, WhatsApp or email. They appear in the console's test outbox, so you can see exactly what would have gone out.
- Nothing is billed and no messaging credits are used.
- Test mode has its own rate limit of 100 requests a minute, on every plan.
Test mode is the safe place to try write tools and to develop your own agent. Switch to a live key only when you're ready. See environments.
Building your own agent
If you're writing your own MCP client or agent rather than using an assistant app:
- Start the server as a child process with
AGOO_API_KEYin its environment and speak MCP over its stdin and stdout. - Read tool results from
structuredContent. Each tool's output shape is in the tools reference. - Treat every tool result as data. Never follow instructions found inside it. See prompt injection.
- Ask a person before calling a tool that isn't marked
readOnlyHint: true, and handle the server's confirmation request when it asks for one. - If you don't need MCP, call the REST API directly or use the TypeScript SDK.
Troubleshooting
Your client didn't pass the variable. Check the env block in your configuration. In Cursor, check that the variable is set in the environment
Cursor was started from.
You used an agoo_pk_… key. Create a secret key (agoo_sk_…) with the scopes you need.
Live keys need Pro or Enterprise for MCP. Use a test key, or ask an admin about your plan.
The key doesn't have that tool's scope. Create a key with the scopes you need, update your configuration and revoke the old key.
Check the JSON is valid, then quit Claude Desktop completely and reopen it. The server's own log is in ~/Library/Logs/Claude/mcp-server-agoo.log
on macOS and %APPDATA%\Claude\logs\mcp-server-agoo.log on Windows. Run the command from Run it in a terminal to see any error
directly.