OmniContext
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OmniContextWhat's this YouTube video about: https://youtu.be/dQw4w9WgXcQ"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OmniContext
Connect Claude to your life — without touching a terminal.
OmniContext is a local MCP server for Claude Desktop that connects Claude to the tools you already use — Notion and YouTube today, more on the way. Install it as a one-click extension, no terminal or API dashboard required.
You: Summarize this video for me: youtube.com/watch?v=xxxxxxxxxxx
Claude: [reads the transcript through OmniContext and replies instantly]
You: What does my Notion page "Q3 Roadmap" say about launch dates?
Claude: [searches your Notion, opens the page, answers from its content]Features
Notion, without the copy-pasting — search page titles and pull full page content as clean markdown, right from the conversation.
YouTube videos, the moment you paste the link — Claude reads the transcript and can summarize, analyze, or answer questions about it instantly.
Clean transcript exports — when you want the raw text (for notes, research, or another tool), OmniContext saves it as a tidy
.mdfile instead of dumping it into the chat.
More integrations are on the way — see the Roadmap.
Related MCP server: Claude RAG MCP Pipeline
Installation
No code, no terminal, no API dashboard.
Download the latest
omnicontext.mcpbfrom the Releases tab.Open Claude Desktop → the menu (☰) →
File → Settings → Extensions.Click Advanced settings then scroll down to Install Extension… and select it.
Using Notion? Paste your integration token into the form Claude Desktop shows you. That's the entire setup.
Try it in a chat:
"What's this YouTube video about:
<link>""Read my Notion page:
<link>"
Note: your Notion token is stored encrypted by your OS (Keychain on macOS, Credential Manager on Windows) — never in a plain text file. If you don't need Notion, skip it; the YouTube tools work with zero setup.
Development
For running the server from source, contributing, or wiring it into Claude Code instead of Claude Desktop.
git clone <your-repo-url>
cd omnicontext
npm install
npm run build # compiles TypeScript -> dist/
npm test # full suite, incl. live smoke tests
npm run pack # builds omnicontext.mcpb locallyRegister it with Claude Code:
claude mcp add --transport stdio omnicontext \
--env NOTION_TOKEN=your_notion_token \
-- node /absolute/path/to/omnicontext/dist/index.jsRun it directly during development:
npm run devDebug tool calls with the official MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.jsTools reference
Tool | What it does |
| Reads a Notion page (URL or ID) and returns it as markdown |
| Searches page titles across everything shared with the integration |
| Fetches a YouTube video's transcript as plain text, for in-chat analysis |
| Saves a video's full transcript to a local |
Roadmap
OmniContext is an early MVP — the foundation is in place, and the integrations list is just getting started.
YouTube transcripts (in-chat + file export)
Notion (internal token, read-only)
One-click
.mcpbpackaging for Claude DesktopNotion OAuth — one-click connect, no more manual tokens or sharing pages by hand
Discord integration
Telegram integration
More integrations, one context source at a time
Privacy & security
OmniContext runs entirely on your machine. It talks directly to Notion's and YouTube's own APIs — there is no OmniContext backend, no analytics, and no middleman server that sees your data.
Contributing
Issues and pull requests are welcome. If you're adding a new integration, follow the existing pattern in src/integrations/<name>/ — each one is self-contained and registers its own tools without touching the core server.
Support
Found a bug or want to request an integration? Open an issue.
License
MIT — free to use, modify, and self-host.
Built on the Model Context Protocol.
Available Tools
5 toolsnotion_get_pageGet Notion pageA
Reads a Notion page's content as markdown. The page must be shared with this integration first (open the page in Notion, click Share, add the integration).
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | A Notion page URL (e.g. https://notion.so/My-Page-abc123...) or page ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, but the description correctly identifies the tool as a read operation. It mentions a prerequisite for successful invocation. However, it does not disclose other behavioral traits like rate limits, error responses, or what happens if the prerequisite is not met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, the first stating the core functionality and the second providing necessary usage context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description adequately covers the purpose and a key prerequisite. It lacks details on return value or error scenarios, but remains largely complete for a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with a description for the 'page' parameter. The tool description essentially restates that the parameter is a Notion page URL or ID, adding no new semantic information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads a Notion page's content as markdown, with a specific verb and resource. It distinguishes itself from the sibling tool 'notion_search' which is for searching, not reading a specific page.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by including a prerequisite (page must be shared with integration). It implies usage for reading specific pages but does not explicitly state when not to use it or name alternatives, though sibling tools offer contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notion_searchSearch Notion pagesA
Searches page titles across every Notion page shared with this integration, returning each match's title, ID, and URL.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Text to search for in page titles. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses the search scope and return data but omits potential side effects, rate limits, or behavioral nuances like case sensitivity or pagination. Adequate but minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and outcome. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with one parameter and no output schema, the description covers what is searched, the scope, and the returned fields. It lacks details like sorting or result limits but is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the query parameter already described as 'Text to search for in page titles.' The description adds scope context ('every Notion page shared with this integration') but does not significantly extend parameter meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'searches', the resource 'page titles across every Notion page shared with this integration', and the return data 'title, ID, and URL'. It distinguishes from sibling tool notions like notion_get_page, which likely retrieves a single page's content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for searching page titles but does not specify when to use it versus alternatives, nor does it mention limitations (e.g., only titles, not full text). No explicit 'when to use' or 'when not to use' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingPingA
Health check — confirms OmniContext is running and returns its version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It clearly states the tool's behavior: confirms running and returns version, which is sufficient for a simple read-only health check. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the tool's purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple health check tool with no parameters and no output schema, the description provides complete context. It tells the agent exactly what the tool does and what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the baseline is 4. The description does not need to add parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's purpose as a health check that confirms OmniContext is running and returns its version. The verb 'check' and resource 'OmniContext service' are specific, and there are no siblings to distinguish from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for confirming availability before other operations, but does not explicitly state when to use it or provide alternatives. Since it's a simple health check, the implied context is adequate but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_get_transcriptGet YouTube transcriptA
Fetches the transcript/captions of a YouTube video as plain text. No login or setup required — just paste a video link or ID.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | A YouTube video URL (e.g. https://youtube.com/watch?v=..., https://youtu.be/..., or a Shorts link) or an 11-character video ID. | |
| lang | No | Optional ISO language code for the transcript (e.g. 'en', 'es'). Defaults to the video's default caption track. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that no login or setup is required, which is positive. However, it does not mention potential rate limits, what happens if the transcript is unavailable, or any error conditions. For a simple read tool, this is adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. The first sentence states the core purpose, the second adds context about authentication and input convenience. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 2 parameters and no output schema. The description covers the essential input and authentication context. It omits details about return format (raw text vs segmented) and failure cases, but for a transcript fetch tool, these are common knowledge. Slightly incomplete but mostly sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by clarifying the 'url' parameter accepts various YouTube URL formats or a video ID, which goes beyond the schema's generic description. For 'lang', it merely repeats the schema's default behavior, so no extra credit there.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches transcript/captions of a YouTube video as plain text. It uses a specific verb ('Fetches') and resource, distinct from sibling 'youtube_save_transcript' which likely saves. The 'No login or setup required' note further clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear input guidance: 'just paste a video link or ID.' It explains accepted formats (full URL, Shorts link, or video ID). However, it does not explicitly mention when not to use it (e.g., if video has no captions) or compare to alternatives like youtube_save_transcript.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_save_transcriptSave YouTube transcript to a fileA
Fetches a YouTube video's transcript and writes it to a local .md or .txt file, returning the file path. Use this when the user wants the full transcript exported for later reading, rather than reproduced in the chat.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | A YouTube video URL (e.g. https://youtube.com/watch?v=..., https://youtu.be/..., or a Shorts link) or an 11-character video ID. | |
| lang | No | Optional ISO language code for the transcript (e.g. 'en', 'es'). Defaults to the video's default caption track. | |
| destination | No | Optional file path or filename (.md or .txt) for the saved transcript. If it's a plain filename or omitted, the file is saved in the user's Downloads folder. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses writing to a local file and returning the path, but does not mention potential failures (e.g., unavailable transcript) or network behavior. Adequate for basic understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero redundancy, front-loaded with purpose and usage context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with few parameters and no output schema. Description covers purpose, usage, and result adequately. Missing error/edge-case info but not critical for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds file extension hints (.md/.txt) but no further parameter details. Schema already handles parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (fetches transcript and writes to file), the resource (YouTube video), and the result (file path). It distinguishes from the sibling youtube_get_transcript by noting the export for later reading rather than chat reproduction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool ('when the user wants the full transcript exported for later reading'), which contrasts with the implied sibling for chat output. Does not name the sibling explicitly but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.2- First observed
notion_get_page - First observed
notion_search - First observed
ping - First observed
youtube_get_transcript - First observed
youtube_save_transcript
TDQS
Scored across 5 tools
All tools have clearly distinct purposes: Notion page reading and searching, a health check, and YouTube transcript retrieval and saving. No overlap or ambiguity.
Tool names follow a consistent verb_noun pattern with snake_case (notion_get_page, notion_search, youtube_get_transcript, youtube_save_transcript) except for 'ping', which is a standard health check name and does not disrupt consistency.
With 5 tools covering two distinct domains (Notion and YouTube) plus a health check, the count is well-scoped and appropriate for the server's purpose.
The Notion integration is limited to reading and searching, missing create/update/delete operations. YouTube tools only handle transcripts, lacking search or video metadata. Significant gaps exist for full workflow coverage.
Maintenance
Related MCP Connectors
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.
Connect Claude, Cursor, or ChatGPT to your business data. Ask questions, get answers.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceTurns Claude Desktop into a personal document question-answering system using local vector search. Index PDF, TXT, and Markdown documents into collections and get answers based strictly on your documents with zero hallucination.9-
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to search and query personal document collections (PDF, Word, Markdown, text) using semantic search and conversational AI with full context preservation across exchanges.MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude Desktop to read and create Notion pages with markdown formatting support.35MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude Desktop to your Obsidian vault, enabling reading, writing, searching, and organizing notes locally.1MIT