Integrations
Drushya MCP
Bring your meeting context into the AI tools you already use.
Connect Drushya through the Model Context Protocol (MCP) to find meetings, read notes and transcripts, manage action items, and organize your work with tags and summary templates.
Open Drushya MCP settings →Before you connect
- A Drushya account with access to the workspace containing your meetings.
- Saved meeting notes or transcripts to try the read tools.
- An AI client that supports remote Streamable HTTP MCP and browser-based OAuth sign-in.
Your AI provider’s plan and administrator settings determine whether custom MCP connections are available. The setup below uses a custom server connection; you do not need to find a Drushya listing in a provider’s directory.
Connection details
Use this hosted server URL in your AI client:
https://api.mydrushya.com/mcp - Transport
- Streamable HTTP
- Authentication
- OAuth 2.0 with PKCE
- Client registration
- Automatic (DCR)
- Add a custom MCP server named Drushya and paste the URL above.
- Choose OAuth or browser sign-in. If the client asks how to register, choose automatic registration / DCR.
- Sign in to Drushya, select the workspace, review the requested permissions, and choose Allow.
- Enable Drushya in your conversation and try: “Show my most recent meeting and summarize its notes.”
No API key or manually supplied client secret is needed with a DCR-compatible client.
Choose your AI tool
Claude
- Open Claude and go to Customize → Connectors.
- Choose the option to add a custom connector. Name it Drushya and enter the server URL above.
- Use OAuth sign-in and select Register automatically if an OAuth client option appears.
- Connect, sign in to Drushya, select your workspace, and approve the requested access.
- In your conversation, open + → Connectors and enable Drushya.
For managed Claude workspaces, an owner may first need to add the connector under Organization settings → Connectors. See Claude’s custom connector guide.
ChatGPT
- Open ChatGPT Plugins.
- Use the plus button and choose Add custom MCP server.
- Enter Drushya as the name, paste the server URL, and choose OAuth authentication.
- Review the connection notice and create the connection as a plugin. Complete the Drushya sign-in and consent flow when prompted.
- Make Drushya available in your conversation, then ask for your latest meeting notes.
If custom connections are unavailable, check your account’s settings or your workspace administrator’s policy. Menu wording can vary by ChatGPT surface. See the official custom MCP setup instructions.
Claude Code
Run this command in your terminal:
claude mcp add --transport http drushya https://api.mydrushya.com/mcp Start Claude Code, run /mcp, select Drushya, and authenticate. Complete the browser sign-in before asking Claude to use your meetings. See Claude Code’s MCP documentation.
Codex
Add the server, sign in through your browser, then check the connection:
codex mcp add drushya --url https://api.mydrushya.com/mcp
codex mcp login drushya
codex mcp list Inside Codex, use /mcp to inspect active servers. For the IDE extension, open its MCP server settings, add a Streamable HTTP server with the same URL, and authenticate. See the official Codex MCP guide.
Cursor
- Open Cursor’s MCP configuration from Customize / MCP settings.
- Add the following entry to
.cursor/mcp.jsonfor this project, or~/.cursor/mcp.jsonfor all projects. Merge it with any existing servers. - Save, enable Drushya, and complete the OAuth authentication prompt.
- Ask Cursor Agent to retrieve your meeting notes.
{
"mcpServers": {
"drushya": {
"url": "https://api.mydrushya.com/mcp"
}
}
} Microsoft Copilot Studio
Use an agent with generative orchestration enabled and permission to add custom tools.
- In the agent’s Tools page, choose Add a tool → New tool → Model Context Protocol.
- Enter Drushya, a description such as “Access my meeting notes and action items,” and the server URL.
- Choose OAuth 2.0 → Dynamic discovery, then create the server connection.
- Create a connection, complete Drushya authorization, and add it to your agent.
- Test a meeting lookup in the agent’s test pane.
This uses a custom MCP connection, not a preinstalled Drushya connector. See Microsoft’s MCP onboarding instructions.
Windsurf / Cascade
For Cascade, open its MCP configuration file from the panel’s Actions menu. Add the server entry below, save, and enable Drushya. Complete the browser OAuth prompt before using its tools.
{
"mcpServers": {
"drushya": {
"url": "https://api.mydrushya.com/mcp"
}
}
} The current Cascade documentation is maintained under Devin Desktop. Use the configuration file opened by your installed client; newer Devin Local agents have a separate MCP setup.
Other MCP clients
Add the hosted URL as a remote Streamable HTTP server with OAuth 2.0, PKCE, and dynamic client registration. Complete browser sign-in, discover the server’s tools, and enable the operations you need.
Clients that support only local processes, API keys, or SSE cannot use this connection directly. Follow your client’s remote HTTP setup instructions; JSON configuration keys differ between clients.
Tools and example prompts
Drushya’s MCP interface defines 19 tools. Your AI client chooses the calls needed for a prompt; a request may use several tools. Write operations require the corresponding permissions.
| Tool | What it does | Example prompt |
|---|---|---|
list_meetings | Browse meetings with date boundaries, included/excluded tags, optional saved summaries, and pagination. | List the customer calls I had last Tuesday in my timezone. |
search_meetings | Find keyword or phrase matches across meeting content, with dates, included/excluded tags, and optional saved summaries. | Find meetings mentioning renewal, then summarize the matching notes. |
get_meeting | Read a meeting’s saved summary, metadata, attendees, scoped tags, and task count. Choose a saved language/template; Markdown is the default. | Open the notes from my most recent product review. |
get_meeting_summary | Read a saved summary in bounded pages, selecting its language, template, and format without changing the meeting. | Read all pages of the saved English summary for my product review. |
get_meeting_transcript | Read transcript segments or text in bounded pages, following the cursor until complete. | Read every transcript page from the product review and collect the decisions. |
search_people | Find stored People records by name or email. | Find the contact whose email is alex@example.com. |
list_meeting_tasks | List tasks across accessible meetings or one meeting, filtered by completion, assignee, priority, keywords, and due dates. | Show open, high-priority tasks assigned to Alex that are due this week. |
create_meeting_task | Create one manual task in a meeting you own, with optional assignee, due date, and priority. | In the product review, add a task for Alex to prepare release notes by Monday. |
update_meeting_task | Edit one task’s title, completion, assignee, deadline, or priority; clear optional fields with null. | Complete the release-notes task and remove its deadline. |
list_summary_templates | List visible summary templates and the supported fields available for creating your own. | Show my summary templates and the sections I can choose. |
create_summary_template | Create a personal template from predefined summary fields. | Create a template called Weekly Review with decisions and next steps. |
update_summary_template | Rename or change the fields of a personal template you own. Built-in templates are read-only. | Add key discussion points to my Weekly Review template. |
list_tags | List private and workspace-visible tags available to you. | Which labels can I use to organize my meetings? |
create_tag | Create a private tag, optionally choosing a color; otherwise use the default palette color. | Create a label named Customer Renewals. |
update_tag | Change an owned tag’s name or color. | Rename Customer Renewals to Account Reviews. |
delete_tag | Permanently remove an owned tag and its meeting assignments; meeting content remains. | Delete the unused Archived Launch label. |
set_tag_visibility | Make an owned tag private or visible throughout the workspace. Does not share meeting content. | Make Account Reviews visible to my workspace. |
add_tag_to_meetings | Apply one tag to selected accessible meetings without replacing their other tags. | Apply Account Reviews to my two latest renewal calls. |
remove_tag_from_meetings | Remove one tag from selected meetings while preserving their other tags. | Remove Account Reviews from yesterday’s internal planning meeting. |
Give your AI client your timezone for phrases such as “this week” or “Monday.” When a meeting or person is ambiguous, identify the intended record before making changes.
For multi-meeting reports, see tag filters, saved summary versions, and complete paginated retrieval.
Inputs, pagination, and response details
- Meeting dates:
started_fromincludes its timestamp;started_beforeexcludes it. Both accept RFC 3339 timestamps with explicit offsets, for example2026-10-24T00:00:00+05:30. Dates filter meeting start times. - Search: use
querywith AND between words, uppercaseOR, minus exclusions, or quoted phrases. Search is based on text matches, not semantic similarity. - Pagination: pass a returned
nextCursoras the next call’scursor, preserving the filters. Stop when it is null. Transcript calls also acceptlimitandmax_characters. - Task creation: supply
meeting_idandtitle. Optional fields areassignee_name,due_date(YYYY-MM-DD), andpriority(low, medium, high). New tasks start incomplete. - Task updates: also supply
task_idand at least one change. Usecompletedto complete or reopen a task. Null clears assignee, deadline, or priority. Both task writes returnmeetingIdanditemscontaining all current tasks in that meeting, including unchanged ones. Each write targets one task. - Templates: creation uses
nameandfield_ids. Updates usetemplate_idwith a name and/or field change. Listing returnsitemsplussupportedFields; writes returntemplate. Existing summaries are not regenerated. - Template fields:
executiveSummary,fullSummary,detailedContent,attendees,keyDiscussionPoints,decisions, andnextSteps. Custom section names and freeform template prompts are not supported. - Tag visibility: pass
tag_idandvisibilityset toprivateorshared. Adding/removing meeting tags usestag_idandmeeting_ids(1–100 IDs). Visibility cannot target individual recipients. - Retries: task and template creation are not idempotent. If a response is interrupted, check the existing records before repeating the request.
Weekly reports and saved summaries
Review notes from several meetings together, focus on the tags that matter, and leave test meetings out. Drushya can return saved summaries with the meeting list, so your AI client does not need to open each meeting separately.
Try this prompt
“Review my meetings from the last 8 calendar days, including today. Exclude meetings tagged Tests. Summarize completed work, ongoing activities, blockers, and proposed actions, with particular attention to release 5.4. Include links to the source meetings and distinguish target dates from confirmed commitments.”
To narrow the report further, try: “Use only meetings tagged Release 5.4 or Sustaining, and exclude Tests and Demos.” Your AI client first resolves the tag names to the IDs available in your authorized workspace.
Choose which meetings to include
- Include tags: match at least one of the selected tags.
- Exclude tags: leave out any meeting carrying a selected exclusion tag, even if it also matches an included tag.
- No inclusion filter: untagged meetings remain eligible. Date boundaries and access permissions still apply.
Read the saved language and template you need
Ask for a saved summary in any of the 46 supported languages, optionally using a specific saved template. Reading a version does not translate or regenerate it, switch the language or template in your Drushya app, or change the meeting title.
If the requested version is missing, Drushya reports that and lists the available versions. It does not silently substitute a different language or template. Without a selection, the client reads the active summary for the meeting’s selected template.
Keep the report complete
Drushya returns compact Markdown summaries by default. Long responses are split into pages, and an oversized summary includes instructions for retrieving its full content. Your client should follow every page and report missing or unfinished summaries as gaps in its review.
The response includes the saved summary’s generation status and timestamps. These help identify unfinished or older content, but do not prove that every part of a recording is covered. Ask your AI client to check important claims against the transcript when needed.
For client developers: filters, summary options, and response limits
Use list_meetings or search_meetings with include: ["summary"]. Ordinary lists remain lightweight. Both tools accept include_tag_ids and exclude_tag_ids; filtering happens before pagination. Tag filters require tags:read.
This list_meetings example covers October 27 through November 3, 2026, in India time. Call list_tags first and replace the placeholder IDs. Omit include_tag_ids to review all eligible meetings except Tests.
{
"started_from": "2026-10-27T00:00:00+05:30",
"started_before": "2026-11-04T00:00:00+05:30",
"include_tag_ids": [
"<Release-5.4-tag-id>"
],
"exclude_tag_ids": [
"<Tests-tag-id>"
],
"include": [
"summary"
],
"summary_language": "en",
"summary_format": "markdown",
"limit": 25,
"max_response_bytes": 64000
} - Saved versions:
summary_languageacceptsen,hi, orkn. Optionaltemplate_idselects a saved template. These options also work onget_meetingandget_meeting_summary. - Formats:
summary_formatdefaults tomarkdown. Requestdocumentfor the rich-text document, orlegacyfor the former full summary object. Clients that relied onsummaryDocorfullSummaryshould request the corresponding format explicitly. - Byte budget:
max_response_bytesdefaults to 64000 and accepts 4096–256000. It bounds the serialized MCP result, including its text and structured copies, but excludes HTTP and JSON-RPC framing. Bytes are not a model-independent token count. - Meeting pages:
limitis a maximum; the byte budget can return fewer records. PassnextCursorascursorwith the same filters and summary selection until it is null. Ordering is newest meeting first, with ID as the tie-breaker. - Oversized summaries:
contentStatus: "deferred"includes aretrievalreference toget_meeting_summary. Follow its cursors and concatenate each page’scontent. IfcontentEncodingisjson, parse only after assembling every page. - Changed summaries: continuation fails explicitly if the saved content or selected version changes. Discard the partial result and restart the summary request without a cursor.
- Coverage: check
generationStatus,contentStatus, andavailableVersions. Retained content can accompany a failed or unfinished regeneration. Do not describe it as a newly completed summary. - Compatibility: existing
tag_idremains supported and is merged with included tags using “any” matching. Unknown IDs in the new arrays produce an error. Use eitherstructuredContentor its JSON text copy once, rather than sending both to the model.
Permissions and workspace access
When you connect, Drushya asks you to choose a workspace and approve the requested permissions. The connection stays bound to that workspace. Tools still enforce record access and ownership rules.
When a client requests no explicit scopes, Drushya defaults to read access for meetings, transcripts, tasks, people, tags, and templates. Write operations require additional scopes. Review the permissions shown during sign-in; your client may request a different set.
OAuth scope reference
| Scope | Access |
|---|---|
meetings:read | List/search meetings and read metadata and summaries. |
transcripts:read | Read transcript pages; also required for meeting search. |
tasks:read | List meeting tasks and read the task collection returned by writes. |
people:read | Search stored People records. |
tags:read | Read available tags and filter meetings by included or excluded tags. |
templates:read | List summary templates and supported fields. |
tasks:write | Create or edit meeting tasks. Also requires tasks:read. |
templates:write | Create and edit your personal summary templates. |
tags:write | Create/edit tags, change their visibility, and apply/remove them on meetings. Meeting assignment also requires meetings:read. |
tags:delete | Permanently delete tags you own. |
Troubleshooting
I cannot find the custom MCP option
Check that your AI client supports remote MCP and that its plan and workspace policy allow custom servers. A team administrator may need to enable or add the connection. Use the provider documentation linked above for its current interface.
The URL shows an error in my browser
The /mcp URL is a protocol endpoint, not a website. Opening it directly can show an authentication error or Method not allowed. Paste it into your MCP client and complete OAuth sign-in instead.
Authentication fails
Use the exact HTTPS server URL and automatic OAuth client registration (DCR). Sign in with the Drushya account that owns or can access the intended workspace. If a login attempt expired, start authentication again from your AI client.
The client connects but shows no tools
Check that Drushya is enabled in the client and in the conversation. Check the client’s MCP status for errors, then reconnect if authorization has expired. In Claude Code or Codex, /mcp shows connection status.
I can read notes but cannot change tasks or templates
The operation needs write permission as well as access to the underlying record. Ask your client to request the relevant scopes and complete consent again. Task writes need both tasks:read and tasks:write; built-in templates cannot be edited.
My client still shows the old tools or options
Refresh the client’s Drushya tool discovery or reconnect the MCP connection, then start a new conversation if needed. The current tool list includes get_meeting_summary and the meeting-list options include_tag_ids, exclude_tag_ids, and include.
A requested summary language or template is unavailable
MCP reads saved versions only. Check availableVersions, choose an existing version, or generate the required version in Drushya before requesting it again. A read does not generate or translate a summary.
A summary is deferred or the result has fewer meetings than requested
A response can return fewer meetings because of its byte budget or because fewer meetings match your filters. Follow nextCursor for more meetings and use the summary’s retrieval reference for get_meeting_summary. Continue until every cursor is null; deferred content has not been silently cut off.
A summary continuation cursor no longer works
The content or selected version may have changed. Discard the partial summary and restart without a cursor. For meeting pages, reuse the same filters, language, template, and format.
My meeting is missing
Check the Drushya account and workspace selected during authorization, then check date and tag filters. Follow pagination for older records. Deleted meetings and records outside your authorized access are unavailable.
Searching a question returns no matches
Drushya searches keywords and phrases. Try a distinctive term from the discussion, retrieve the matching notes or transcripts, and ask your AI client to summarize that evidence. Searching by meaning alone is not supported.
My company network policy blocks the connection
A cloud-hosted AI client may reach Drushya from the provider’s network rather than your computer. Ask your administrator to check the workspace’s allowed networks and the provider’s connection requirements.
Still stuck? Contact support@mydrushya.com with your client name and the error message. Do not include passwords or access tokens.
Frequently asked questions
Do my AI client and Drushya accounts need the same email?
No. The Drushya account you choose during browser sign-in determines which workspace data the connection can access.
Do I need an API key, client ID, or client secret?
Not with a client that supports automatic registration. Drushya supports OAuth discovery and dynamic client registration. Choose automatic registration / DCR rather than supplying credentials manually.
Does Drushya need to be running on my desktop?
Not to read meeting content already saved on the server. MCP retrieves your saved workspace data; it does not start a recording or stream live audio.
Can an AI tool change my meeting content?
The documented write tools manage tasks, personal summary templates, tags, and tag assignments. They do not edit transcripts or summaries, delete meetings, or control recordings. Each action is limited by the permissions you approve and your access to the record.
Will reading another summary language change my meeting?
No. Saved language and template reads leave the meeting’s title and selected version unchanged. Versions in any of the 46 supported languages can be requested when they have already been saved.
Does sharing a tag share the meetings carrying it?
No. Tag visibility controls whether the label is private or workspace-visible. It does not grant access to meeting content or share a label with selected email addresses.
Can I create a template with any sections I want?
Templates use Drushya’s predefined summary fields. Ask the client to list summary templates and supported fields first. Arbitrary section names such as wins and blockers are not accepted.
Does People search look up someone’s role or company?
It returns the information stored in Drushya’s People records, such as name and email. It does not enrich contacts with external role or company information.
Can I connect my own internal AI tool?
Yes. Implement Streamable HTTP MCP with OAuth 2.0, PKCE, and dynamic client registration. Use the same server URL, authorize a Drushya workspace, and discover the tools through MCP.
How do I stop using the connection?
Disable or remove Drushya in your AI client’s connector or MCP settings. This removes it from that client’s available tools; it does not delete your Drushya meetings.