Omniscience
Click on "Install 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., "@Omnisciencehow does the user authentication flow work?"
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.
Omniscience is a highly optimized Model Context Protocol (MCP) server designed to give Large Language Models (LLMs) token-efficient, surgical access to massive codebases. Instead of flooding the LLM's context window with entire repositories, Omniscience uses a sophisticated Dual-Brain architecture to find exactly what the LLM needsβand absolutely nothing more.
π§ The Dual-Brain Architecture
graph TD
A[Codebase] -->|Real-time watcher| B(Omniscience Scanner)
B -->|Code| C{Dual-Brain Parser}
subgraph Structural Brain
C -->|AST Parsing| D[Tree-Sitter]
D -->|Function Definitions & Calls| E[(SQLite Graph DB)]
end
subgraph Semantic Brain
C -->|Text/Code| F[Voyage-4-nano]
F -->|Local Embeddings| G[(LanceDB Vector DB)]
end
E -.->|Graph Query| H[MCP Client]
G -.->|Semantic Search| H1. Structural Brain (Tree-sitter)
Parses the AST (Abstract Syntax Tree) of your codebase in real-time. It maps out exact file locations, boundary lines for functions/classes, and automatically generates a complete Call-Graph (Caller -> Callee relationships) stored in a local SQLite database.
2. Semantic Brain (LanceDB & Voyage-4-nano)
Generates and stores high-quality semantic embeddings of every code symbol completely locally. Allows the LLM to search for abstract concepts ("how does the auth routing work?") using lightning-fast hybrid search.
Related MCP server: DeepContext
π How to talk to your AI?
If you're wondering how exactly you should prompt your AI (Claude, Antigravity, Cursor) to make use of these superpowers, check out our Prompt Library (PROMPTS.md) for copy-pasteable examples!
π οΈ Exposed MCP Tools
The server exposes powerful tools to the AI, allowing it to navigate your project like a senior engineer.
Tool | Description | Token Impact |
π | Finds relevant code symbols based on a natural language query or keywords. | Low |
πΈοΈ | Returns the blast radius of a specific symbol based on the AST Call-Graph. | Low |
π | Extracts only the exact code snippet for a single function or class. | Massive Savings |
ποΈ | Replaces an exact code symbol with new code and triggers a background re-index. | Low |
π | Manually triggers a complete re-indexing of the entire workspace. | None |
π Installation & Setup
Omniscience is designed to be ridiculously fast. We use uv for lightning-fast dependency resolution.
# 1. Clone the repository
git clone https://github.com/FreakyLetsFail/mcp-omniscience.git
cd mcp-omniscience
# 2. Run the Initialization Script (Downloads model, syncs env)
./init.shπ¦ Standalone CLI Indexer (For Large Repositories)
To prevent your IDE and OS from freezing when opening a massive repository for the first time, Omniscience comes with a standalone CLI tool. It builds the AST Call-Graph and Semantic Vector Database efficiently in the background before you even start your AI.
./index.sh index /path/to/your/large/projectThis creates a .omniscience folder directly inside your project containing the LanceDB and SQLite databases.
π IDE Integration
Add Omniscience to your MCP client configuration (mcp_config.json, claude_desktop_config.json, etc.):
{
"mcpServers": {
"omniscience": {
"command": "/path/to/mcp-omniscience/run_server.sh",
"args": []
}
}
}No initialization prompt required!
When the MCP server starts in a new WORKSPACE_DIR, it automatically builds the vector and graph databases in the background.
π° Token Cost Analysis
Why use Omniscience over traditional whole-file reading?
Full File Read (server.py): ~911 Tokens
Omniscience Surgical Read (1 function): ~117 Tokens
Context Window Saved: 87.16% per interaction!
By isolating exactly what is needed, the LLM hallucinates less, replies faster, and drastically reduces API costs.
Available Tools
6 toolsapply_surgical_patchA
Replace an existing symbol with entirely new code. Re-indexing is automatic.
| Name | Required | Description | Default |
|---|---|---|---|
| new_code | Yes | ||
| symbol_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses the destructive nature ('Replace... entirely new code') and side effects ('Re-indexing is automatic'). Without annotations, this is adequate behavioral transparency, though could be enriched with auth requirements.
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, no redundant information. Every word is necessary, front-loading the core 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?
For a 2-param tool with output schema, the description is minimal. It covers the core operation but lacks validation hints or expected behavior for invalid input. Contextual completeness is adequate but not robust.
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?
Description implies symbol_id identifies the symbol and new_code is the replacement, adding basic meaning beyond schema with 0% coverage. However, no format or constraints are provided, leaving gaps for an AI agent.
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 action ('Replace') and resource ('existing symbol') with specific verb+resource. It distinguishes from siblings like 'surgical_read' and 'rebuild_index' by emphasizing replacement and automatic re-indexing.
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?
No explicit guidance on when to use versus alternatives. Context from sibling tool names suggests different operations, but the description does not differentiate use cases or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_statusB
Check the status of the background indexing process.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It only says 'check the status' without disclosing what the status includes (e.g., progress, errors, completion), whether it is safe to call repeatedly, or any side effects. Basic but insufficient.
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, front-loaded sentence with no wasted words. It earns its place by stating the tool's purpose efficiently.
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?
Given the tool has no parameters and an output schema exists, the description does not explain what the returned status looks like or how it relates to sibling tools like 'rebuild_index'. Adequate but could be more helpful by mentioning the output format or common use cases.
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 and schema coverage is 100%. The description adds no parameter info but none is needed. Baseline 4 for 0 parameters is appropriate.
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 checks the status of the background indexing process, using a specific verb and resource. However, it does not distinguish this from sibling tools like 'rebuild_index', which also relates to indexing, but the purpose is unambiguous.
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?
No guidance is provided on when to use this tool versus alternatives. The description lacks context for when this status check is appropriate, such as after starting indexing or for monitoring.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_queryA
Find the blast radius (which functions call this symbol).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states what the tool does, not behavioral traits like whether it is read-only, return format, or any side effects. This is insufficient for a query tool.
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 redundant or verbose elements.
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 (1 param, output schema exists), so the minimal description is partly adequate. However, the lack of behavioral context (e.g., read-only, permissions) and no mention of output structure, though covered by output schema, leaves some gaps.
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 schema has no parameter descriptions (0% coverage), but the description explains that the 'symbol_id' is the symbol whose callers are sought. This adds meaningful context beyond the raw schema field name.
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's action ('Find') and the resource ('blast radius'), defined as which functions call a symbol. It distinguishes itself from sibling tools like get_index_status (status) and semantic_search (generic search) by focusing on dependency analysis.
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 dependency analysis but provides no explicit when-to-use or when-not-to-use guidance, nor alternatives. The usage context is deducible but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rebuild_indexC
Manually trigger a complete re-indexing. Provide a 'path' to change the workspace directory.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose that re-indexing is likely a heavy, potentially disruptive operation (e.g., downtime, performance impact). The wording 'change the workspace directory' is confusing and incomplete.
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, front-loaded with the main action. No redundant words, but the second sentence is unclear. Acceptable conciseness for a simple tool.
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?
Despite having an output schema, the description does not mention return values or behavior during/after rebuild. It lacks critical context: what 'complete re-indexing' entails, whether it blocks queries, and that 'path' specifies which directory to re-index (not to change the workspace). Incomplete for safe usage.
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 single 'path' parameter has no schema description (0% coverage). The description adds 'Provide a path to change the workspace directory', which gives some context but is ambiguous and does not specify format, constraints, or whether it's required. Moderately helpful beyond the empty schema.
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 states the action 'trigger a complete re-indexing' and mentions a path parameter. It is clear that the tool rebuilds the index, but the phrase 'change the workspace directory' is vague and may mislead about the path's role. Distinction from sibling tools (e.g., get_index_status) is evident.
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?
No guidance on when to use this tool vs alternatives, prerequisites, or consequences. The description simply states what it does without contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
semantic_searchC
Search the codebase semantically and via keyword (hybrid search).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. Only states 'hybrid search' without explaining result format, ranking, limitations, or side effects. Output schema exists but description adds no context.
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?
Single sentence of 8 words, no redundancy. Front-loaded with purpose. 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?
Given one parameter, no annotations, and output schema present, the description is too minimal. Lacks explanation of hybrid search behavior, result expectations, and usage context for an agent to invoke correctly.
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?
Single 'query' parameter has no schema description (0% coverage). Description mentions 'semantically and via keyword' which hints at query purpose but does not explain expected format (natural language vs keywords) or provide examples.
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?
States verb 'Search', resource 'codebase', and method 'semantically and via keyword (hybrid search)'. Clear and specific, though does not explicitly differentiate from siblings like graph_query, but the tool name and description make its search role obvious.
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?
No guidance on when to use this tool versus alternatives like graph_query or surgical_read. No mention of appropriate queries or scenarios, nor exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
surgical_readA
Read only the exact code lines of a specific symbol_id (e.g. 'src/app.py::main').
| Name | Required | Description | Default |
|---|---|---|---|
| symbol_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavior. It states 'Read only' implying no modifications, but lacks details on permissions, rate limits, or what constitutes 'exact code lines'. Could mention it does not traverse dependencies.
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?
Single concise sentence with an example. Front-loaded with action and object. 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?
Tool is simple (single required parameter). Has output schema (not shown). Description covers purpose and parameter format. Could optionally mention return format (e.g., 'returns code lines as string'), but output schema likely handles that.
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 has 0% coverage, but description adds meaning: 'symbol_id (e.g. 'src/app.py::main')' explains the format and purpose. This compensates for the schema gaps.
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 it reads exact code lines for a specific symbol_id, using verb 'Read' and specific resource 'symbol_id'. Distinguishes from sibling tools like apply_surgical_patch (which modifies) and semantic_search (which searches).
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 phrase 'Read only the exact code lines' implies a narrow, specific read operation. While it doesn't explicitly state when not to use or mention alternatives, the context suggests it is for precise symbol lookups, not broad searches. Sibling tools offer different functionalities.
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. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
apply_surgical_patch - First observed
get_index_status - First observed
graph_query - First observed
rebuild_index - First observed
semantic_search - First observed
surgical_read
TDQS
Each tool has a clearly distinct purpose: indexing status, hybrid search, dependency graph, reading specific symbols, patching symbols, and index rebuild. There is no overlap or ambiguity between them.
Tool names follow a mix of noun_noun (semantic_search, graph_query) and verb_noun (get_index_status, apply_surgical_patch, rebuild_index) patterns, with inconsistent use of adjectives (surgical_read). While clear, they lack a uniform convention.
With 6 tools, the server is well-scoped for codebase analysis and modification. Each tool serves a necessary function without being overly numerous or sparse.
The tools cover key workflows: indexing, searching, dependency analysis, reading, and patching. A minor gap is the lack of a direct way to list all symbols or navigate the codebase beyond search, but this is manageable.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Ground-truth code graph for your codebase: exact callers, callees, symbols & dependencies.
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Ask a codebase what calls what: search, blast radius, paths between symbols, and diffs.
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables semantic code search across multiple repositories using natural language queries. Provides intelligent code discovery, symbol lookups, and cross-repo dependency analysis for AI coding agents.MIT

DeepContextofficial
AlicenseAqualityFmaintenanceAdds symbol-aware semantic search to coding agents like Codex CLI and Claude Code, enabling precise codebase context via natural language queries.4109276Apache 2.0- AlicenseNot gradedqualityBmaintenanceEnables LLM agents to efficiently understand and navigate a codebase by providing semantic search over symbols and a reference graph, replacing expensive grep/glob calls with structured tools like definition lookup, caller/callee queries, and change-impact analysis.1MIT
- AlicenseNot gradedqualityBmaintenanceProvides AI agents with causal code memory by indexing repositories into a graph of symbols and edges, enabling context-aware retrieval of relevant code slices.3MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FreakyLetsFail/mcp-omniscience'
If you have feedback or need assistance with the MCP directory API, please join our Discord server