# Guru MCP connector

The Guru connector brings announcements, answers, team analytics and AI evaluations into Claude, ChatGPT, Cursor and the Elaichi Agent, so each person works with Guru as themselves and every call lands in an audit log.

Source: https://elaichi.ai/connectors/guru/

## Facts

| | |
| --- | --- |
| Application | Guru |
| Category | Knowledge Management |
| AI tools | 253 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Guru is connected

- Which Guru announcements has the support team not read yet?
- Summarize this week's Guru team analytics for sales enablement.
- Draft a Guru announcement about the new refund policy and send reminders.

## Connect Guru in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Guru.
2. Optionally set Share with, then press Connect.
3. Paste a Guru API key. One person generates a token in Guru and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Guru tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Guru MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Guru MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Guru MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Guru to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Guru tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Guru through Elaichi

### Answer a ticket from the knowledge base

Support. Ask for the current answer to a customer question and get it from Guru, then record a new answer when the team settles something that was missing.

### Publish an announcement and chase the readers

Internal comms. Draft an announcement in Guru, see who has read it and who has not, and send a reminder to the people who still need to.

### See which teams actually use Guru

Enablement. Pull team analytics and user stats to find the teams that read what you publish and the ones that quietly stopped.

### Keep policy updates acknowledged

People. Push a policy change out as a Guru announcement, track reads across the company, and export the list when HR needs proof.

### Check the quality of AI answers

Operations. Run an AI evaluation in Guru, review the results, and export them so the team can decide what content needs fixing.

### Route open questions to the right expert

Sales. Assign unanswered Guru questions to the person who knows, restore an answer that was removed by mistake, and keep the sales floor from guessing.

## Elaichi vs Zapier MCP vs Composio for Guru

All three can connect Guru to an AI assistant, and all three have admin controls. They differ in where access lives and how you pay.

| What to check | Elaichi | Zapier MCP | Composio |
| --- | --- | --- | --- |
| Where the AI connects | One address for the whole organization. Endpoint: https://api.elaichi.ai/mcp | A server per member, created at sign-in. | An MCP endpoint per team, or an SDK. |
| Control over Guru tools | Allow or restrict single Guru tools, per role or user. | App and action restrictions on the account. | Role permissions, down to the action. |
| Record of calls | One audit entry per Guru call. | A History tab of tool calls. | A log of every tool call. |
| Single sign-on | SAML or OIDC, plus SCIM, on Gold. | SAML on Enterprise. | SAML and OIDC on Enterprise. |
| Price | $15 per user per month. | 2 tasks per successful call. | Billed per tool call. |

Sources: Zapier MCP [docs](https://docs.zapier.com/mcp/get-started/quickstart), [security](https://docs.zapier.com/mcp/manage/security), [usage](https://docs.zapier.com/mcp/features/usage); Composio [docs](https://docs.composio.dev/docs/composio-connect), [gateway](https://composio.dev/mcp-gateway), [enterprise](https://composio.dev/enterprise), [pricing](https://composio.dev/pricing). Checked September 2026.

Longer take: [Zapier MCP alternative](/blog/zapier-mcp-alternative/) and [when you don't need an MCP gateway](/blog/when-you-dont-need-an-mcp-gateway/).

## Frequently asked questions

### How do I connect Guru to Claude?

Connect Guru in Elaichi first by pasting a Guru API key, which is the only sign-in step Guru needs. There is no OAuth app to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude signs in to Elaichi and Guru is ready to use.

### Does Guru work with ChatGPT and Cursor as well as Claude?

Yes. Guru is connected once in Elaichi, and the same endpoint, https://api.elaichi.ai/mcp, is pasted into Claude, ChatGPT, Cursor or any other MCP client. The Elaichi Agent uses the same Guru connection without any extra setup.

### What can an AI agent actually do with my Guru data?

With Guru connected, an agent can read and create announcements, send read reminders, see who has read what, record or assign answers, pull team analytics and user stats, and run or review AI evaluations. Short, concrete asks work best, such as who has not read this week's Guru announcement, rather than a long paragraph of instructions.

### Does connecting Guru give the AI everything in my Guru workspace?

No. Every call to Guru runs inside the access of the person who signed in, so an agent sees only the Guru announcements, answers and analytics that person can already see. Elaichi can narrow that access further with roles and restrictions, but it can never widen it beyond what Guru itself allows.

### Can my team share one Guru connection?

Yes. One person connects Guru in Elaichi and shares the connection with a team, and nobody else ever handles the Guru API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person behind every Guru call.

### Can I stop an agent from deleting or changing things in Guru?

Yes. Restrictions in Elaichi apply per action, so you can allow reading Guru announcements and answers while blocking deletion or edits. A restricted action is never advertised to Claude, ChatGPT or Cursor at all, so no prompt, however worded, can reach it.

### What happens to a Guru connection when someone leaves?

Offboarding a person in Elaichi ends their access to Guru through every client at once. A Guru connection shared with a team keeps working for everyone else. Disconnecting Guru once in Elaichi removes it from Claude, ChatGPT, Cursor and the Elaichi Agent together.

### Does the Guru MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Guru is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

### Is Elaichi an alternative to Zapier MCP for Guru?

Yes. Both let Claude, ChatGPT or Cursor use Guru. Zapier MCP fits a team that already automates in Zapier, since each person signs in and acts as themselves in that account. Elaichi fits when IT wants one address for the whole company, per-tool rules by role, and a record of every Guru call.

### How is Elaichi different from Composio for Guru?

Composio gives AI agents tools and sign-in handling across 1,000+ apps, for developers building agents or people using an assistant, billed per tool call. Elaichi gives a company's own people governed access to Guru: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 253 Guru tools

Every tool below is callable through https://api.elaichi.ai/mcp once Guru is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Guru aievaluations** (List). List AI evaluations in Guru. Returns the evaluation records including id and dateCreated.
- **Create a Guru aievaluation** (Create). Create an AI evaluation in Guru by submitting a JSON payload. Returns the created record including id and dateCreated.
- **Get single Guru aievaluation by ID** (Get). Get a single AI evaluation in Guru by id. Returns the AI evaluation record including its id; the API reference does not enumerate further response fields for this endpoint. Required: id.
- **Delete a Guru aievaluation by ID** (Delete). Delete an AI evaluation in Guru by id. Returns an empty 204 response on success. Required: id.
- **Create a Guru aievaluations delete** (Create). Bulk delete AI evaluations in Guru by submitting a JSON request body to the bulk-delete endpoint. Returns an empty 204 response on success. Required: a JSON request body whose fields follow Guru's AiEvaluationBulkDeleteRequest schema (the source docs reference the schema by name but do not enumerate its fields).
- **List all Guru aievaluations exports** (List). Export AI evaluations from Guru as a CSV file. Returns the raw CSV-formatted export text (a text/csv payload whose columns are not enumerated in the API docs). No required parameters.
- **List all Guru aievaluation results** (List). List the results of a Guru AI evaluation. Returns each result record with its id and the upstream AiEvaluationResult attributes (fields are defined by the evaluation type). Required: evaluation_id.
- **List all Guru team analytics** (List). List analytics events for a Guru team. Returns up to 500 events per page, each with id, eventType, user, and eventDate; optional fromDate and toDate narrow the date range. Required: team_id.
- **Get single Guru analytics summarized by ID** (Get). Get summarized analytics for a card in a Guru team, optionally filtered by group, date range, and event types. Returns: id, attributes (the summary fields, whose shape is defined by the upstream AnalyticsSummary schema and is not enumerated in the docs). Required: id (the team id) and cardId.
- **List all Guru announcements** (List). List Guru team announcements owned by the authenticated user. Returns announcement records including their id; the remaining announcement fields are not enumerated in the Guru API reference. Max 50 per page.
- **Create a Guru announcement** (Create). Create a new announcement in Guru. Returns the created announcement record including its id; the remaining announcement fields are not enumerated in the Guru API reference.
- **Get single Guru announcement by ID** (Get). Get the full Guru announcement by id. Returns the announcement record including its id; the remaining announcement fields are not enumerated in the Guru API reference. Required: id.
- **Delete a Guru announcement by ID** (Delete). Delete a Guru announcement by id. Returns an empty 204 response on success. Required: id.
- **List all Guru announcements delegateds** (List). List delegated announcements in Guru, returning all announcements owned by the authenticated user. Returns announcement records including id. Maximum of 50 announcements per page.
- **Create a Guru announcement export** (Create). Initiate an export of user details for a Guru announcement. Returns the bulk operation response object acknowledging the export was queued; Guru's docs do not enumerate its fields, and the exported results are delivered by email when available rather than returned inline. Required: announcement_id.
- **Guru announcement reads bulk update** (Update). Mark a Guru announcement as read for the authenticated user. Returns an empty 204 response on success. Required: announcement_id.
- **Create a Guru announcement remind** (Create). Send announcement reminders to any users who have not yet read the announcement in guru. Returns an empty 204 response on success. Required: announcement_id.
- **Get single Guru stats full by ID** (Get). Get full stats for a Guru announcement by id. Returns the aggregated announcement stats object — an id plus stats-specific attributes whose exact keys are not enumerated in the source. Required: id.
- **Get single Guru stats summary by ID** (Get). Get the stats summary for a Guru announcement by id. Returns the announcement's aggregate stats summary object with stat fields defined upstream by Guru. Required: id.
- **List all Guru stats users** (List). List per-user stats for a Guru announcement. Returns a JSON array of AnnouncementUser records, each with an id and an attributes object — the upstream docs define the AnnouncementUser schema but do not enumerate its fields. Required: announcement_id.
- **Create a Guru answer** (Create). Create a new answer in Guru. Returns the created answer object including its id.
- **Delete a Guru answer by ID** (Delete). Archive an answer in guru by id. Returns an empty 204 response on success. Required: id.
- **Guru answers restore** (Restore). Restore an archived answer in Guru by id. Returns the restored answer object including its id. Required: answer_id.
- **Guru answers assign** (Assign). Assign a Guru answer to an expert. Returns the updated answer object including its id. Required: answer_id.
- **Guru answers unassign** (Action). Unassign a Guru answer from its assigned expert. Returns the updated answer object including its id. Required: answer_id.
- **Create a Guru answers minimal** (Create). Create a minimal answer in Guru by posting a JSON payload to the answers-minimal endpoint. Returns: id, openapi, info, externalDocs, servers, tags, paths, components, x-original-swagger-version.
- **Create a Guru answers stream** (Create). Create an answer for a specific question in Guru with streaming. Returns a server-sent event stream (text/event-stream) carrying the ChatThread created for the answer — an event stream to consume incrementally, not a single JSON object. Requires the question payload in the request body (Guru's shared AnswerQuerySpec used by its ask-a-question endpoints).
- **List all Guru answer boosteddocuments** (List). List the boosted documents for a Guru Answer — the documents Guru matched to the answer's question. Returns each matched document record including id plus document attributes defined by Guru's upstream Document schema. Required: answer_id (the Answer's id).
- **List all Guru answer relevantunverifieddocuments** (List). List the relevant unverified documents for an answer in Guru. Returns an array of matching document records, each with an id and content-type-specific attributes (fields per Guru's upstream Document schema). Required: answer_id (ID of the answer).
- **List all Guru openapis** (List). Fetch the OpenAPI specification document that describes every Guru API endpoint. Returns the document's openapi version, info metadata, and paths operation definitions, plus optional components and servers sections. Takes no parameters.
- **List all Guru swaggers** (List). Get the raw Swagger document describing the Guru API. Returns the full Swagger JSON specification as-is; its contents track the live API surface and are not enumerated field-by-field. Takes no parameters.
- **Delete a Guru card by ID** (Delete). Delete a card in guru by its id. Returns an empty 204 response on success. Required: id.
- **Guru cards bulk update** (Update). Verify a card in guru by its id. Returns an empty 204 response on success. Required: card_id.
- **List all Guru card comments** (List). List the undeleted comments on a Guru card. Returns each comment's id, status (OPEN or RESOLVED), and content. Required: card_id. Max 25 per page.
- **Update a Guru card comment by ID** (Update). Update a comment on a Guru card by id. Returns the updated comment with id, status (OPEN or RESOLVED), and content. Required: card_id, id, content.
- **Delete a Guru card comment by ID** (Delete). Delete a comment on a Guru card by id. Returns an empty 204 response on success. Required: card_id and id.
- **Create a Guru card comment** (Create). Add a comment to a Guru card. Returns the created comment with id, content, and dateCreated. Required: card_id and content.
- **Get single Guru card comment by ID** (Get). Get a single comment on a Guru card by id. Returns the comment's id, content, and dateCreated. Required: card_id and id.
- **List all Guru comment replies** (List). List all replies to a comment on a Guru card. Returns an array of reply objects with id, content, and author. Required: card_id, comment_id. Up to 25 replies per page; use paging to fetch more.
- **Create a Guru comment reply** (Create). Create a new reply to a comment on a Guru card. Returns the created reply object with id, content, and author. Required: card_id, comment_id.
- **Update a Guru comment reply by ID** (Update). Update a reply to a comment on a Guru card by id. Returns the updated reply object with id, content, and author. Required: id, card_id, comment_id.
- **Delete a Guru comment reply by ID** (Delete). Delete a reply to a comment on a Guru card by id. Returns an empty 204 response on success. Required: id, card_id, comment_id.
- **Guru comment resolves bulk update** (Update). Resolve a card comment in Guru by setting its status to resolved. Returns an empty 204 response on success. Required: card_id, comment_id.
- **Guru comment unresolves bulk update** (Update). Unresolve a comment on a Guru card, setting the comment's status back to open. Returns an empty 204 response on success. Required: card_id, comment_id.
- **List all Guru card verifiers** (List). List the verifiers assigned to a Guru card. Returns an array of verifier records with schema-specific fields defined upstream (the Guru reference does not enumerate the UserVerifier fields). Requires card_id.
- **Create a Guru card verifier** (Create). Replace a Guru card's verifiers — the supplied verifier list is created and all existing verifiers are deleted. Returns the resulting verifier collection with schema-specific fields defined upstream (the Guru reference does not enumerate them). Requires card_id and a JSON array of verifier objects.
- **Get single Guru card verifier by ID** (Get). Get a verifier assigned to a Guru card by id. Returns: id, dateCreated, type, user. Requires card_id and id (the verifier's email address).
- **Create a Guru cards extended** (Create). Create a card in Guru and return it with extended fact data, including the card's boards (teams) and collaborators. Returns: id, content, preferredPhrase, collection, boards, collaborators, verifiers, tags, shareStatus, verificationState, verificationReason, verificationReasons, verificationInterval, verificationType, nextVerificationDate, lastVerified, lastVerifiedBy, verificationInitiator,…
- **List all Guru cards verificationmgrs** (List). List unverified cards in Guru that are accessible to the authenticated user, for triaging card verification. Returns each card's id, title, verificationState, dateCreated, lastModified, and view/copy/favorite/follower/board counts. A maximum of 50 cards is returned per response.
- **List all Guru card archivesettings** (List). Get the scheduled archival settings for a Guru card. Returns the scheduled archival settings object (Guru's ScheduleArchivalResponse) when a schedule exists, or an empty 204 response when the card has no scheduled archival. Required: card_id and cardId (the card's ID).
- ...and 203 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
