Your own agent and Mojobase
Connect your own agent
Any agent that speaks MCP connects to Mojobase with one address, https://app.mojobase.ai/mcp, and a key from Settings → Connect an agent, sent as a Bearer token. It works from MCP clients, from the Claude and OpenAI APIs' MCP connectors, or from plain HTTP. Your agent then acts as you across email, calendar, documents, tasks, customers and the Handbook.
Updated
How do you connect Your own agent to Mojobase?
Any MCP client
Cursor, VS Code, Codex and any other client that connects to remote MCP servers over HTTP.
- In Mojobase, open Settings → Connect an agent and make a key. It's shown once, so copy it. Each person can have up to ten.
- Add a remote server named mojobase, with the transport set to Streamable HTTP (often just "http") and the address
https://app.mojobase.ai/mcp. - Add the header
Authorization: Bearer YOUR_KEY. If your client signs in with OAuth instead, use your company's address from Settings, which starts withhttps://app.mojobase.ai/mcp/. - List the tools to check: you should see
mojobase_searchand each app's tools.
Your own code, through an LLM API
For agents you build on a model API. The provider connects to Mojobase for you, so you don't write an MCP client.
- Claude API: pass Mojobase in
mcp_serverswithurlandauthorization_tokenset to your key, and add anmcp_toolsetfor it intools, with the MCP connector's beta header. - OpenAI Responses API: add a tool with
type: "mcp",server_url: "https://app.mojobase.ai/mcp"andauthorizationset to your key; keep approvals on for anything that writes. - Restrict each job to the tools it needs (
allowed_toolson OpenAI, the toolset's allowlist on Claude).
Plain HTTP, no SDK
For scripts and languages without an MCP library. The server answers each POST with one JSON reply.
- POST a JSON-RPC
initializemessage tohttps://app.mojobase.ai/mcpwith your key in the Authorization header, and keep theMcp-Session-Idit returns. - POST
tools/listto see the tools, thentools/callwith a tool'snameandarguments.
- MCP transports: Two standard transports: stdio for a local process, and Streamable HTTP, where each message is an HTTP POST to one endpoint; messages are JSON-RPC1
- Claude API: The MCP connector (beta) reaches remote MCP servers from the Messages API through mcp_servers and an mcp_toolset; only tool calls are supported2
- OpenAI Responses API: The mcp tool takes a server_url and an authorization token; tool calls can run automatically or wait for the developer's approval3
What can you ask Your own agent once it's connected?
- “Every night, list tomorrow's meetings with external guests and write a one-page brief for each.”
- “When a support email mentions a refund, draft the reply from our refund policy page.”
- “Each Friday, post a summary of tasks closed this week by person.”
- “Find every email that mentions a contract renewal date and make a task for each.”
What does your agent get from Mojobase's MCP server?
One server with every app's tools, under one key. Each app's tools are passed through unchanged, so each app's rules hold:
| App | What your agent can do there, and some of the tools |
|---|---|
| Search | One search across mail, events, files, tasks and Handbook pages: mojobase_search |
Read every mailbox you can see and write drafts: mail_search, mail_thread, draft_reply, draft_new |
|
| Calendar | Free times, new events and holds on offered slots: calendar_find_times, calendar_create, calendar_hold |
| Tasks | The team's tasks and projects: tasks_list, task_add, task_complete |
| Documents | Files and documents, with edits as proposals: docs_search, docs_read, doc_propose_edit |
| Customers | People and companies, with their history: customers_find_people, customers_person |
| Handbook | What the business does, sells and allows: knowledge_business_profile, knowledge_search |
| Numbers | Sales, ad spend, campaigns and read-only Stripe invoices, for owners: numbers_summary, numbers_campaigns, numbers_invoices, numbers_invoice |
How do you call Mojobase's MCP server from a script?
Send JSON-RPC over HTTPS. The server answers each POST with one JSON object, with no event stream to hold open:
curl -s https://app.mojobase.ai/mcp \
-H "Authorization: Bearer $MOJOBASE_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"mojobase_search","arguments":{"query":"Northside contract"}}}'
Start with initialize, as any MCP client does, and send back the Mcp-Session-Id header it returns; the name your client gives there is what Activity shows.
What should a custom agent be allowed to do on its own?
Start with reading and drafting, and widen from there. Mojobase's own scheduled runs are limited to exactly that, by the server rather than by the prompt: they read everything, write email drafts, suggest tasks and document edits, and ask for Handbook approval. Give your own agent a key per job, list only the tools it needs in your client, and check Activity for the first weeks.
Why connect your agent to Mojobase instead of to each tool's API?
Because one connection replaces a dozen integrations and their permission models. Wiring an agent to Gmail, a calendar API, a file store, a task app and a CRM means five sign-ins, five sets of scopes and no shared idea of who a customer is. Mojobase gives the agent the whole business, acting as one person with that person's rights, and records every call in one place.
Questions people ask
How do I build my own AI agent for my business?
Pick a model and a framework you like, then give the agent tools. Connecting it to Mojobase's MCP server gives it the business's email, calendar, files, tasks, customers and Handbook in one step, with a key you can switch off at any time.
What can a custom agent do in Mojobase?
Anything the person whose key it uses can do, within the apps they may open: search and read mail, write drafts, find meeting times, add tasks, propose document edits, look up customers and update the Handbook. Each app's own rules still apply.
How many requests can my agent make?
Up to 120 requests a minute per key. When the server is busy, the agent is told to try again in a minute. Twenty wrong keys from one address in ten minutes pause that address.
How does Activity know which agent did what?
Tools that change things take an author and a model, recorded together as one name, such as invoice-bot/claude-sonnet-5-5. Otherwise Activity shows the name your client gave when it connected, or the key's name.
Does my agent need its own Mojobase seat?
No. Agents are never counted as seats. A key belongs to a person and acts as them, so the agent costs nothing in Mojobase; you pay only for the model it runs on, through your own provider.
Sources
- Your own agent: MCP transports. modelcontextprotocol.io/specification/2026-07-28/basic/transports, checked 7 Nov 2026.
- Your own agent: Claude API. platform.claude.com/docs/en/agents-and-tools/mcp-connector, checked 7 Nov 2026.
- Your own agent: OpenAI Responses API. developers.openai.com/api/docs/guides/tools-connectors-mcp, checked 7 Nov 2026.