Skip to main content
Glama

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| H

1. 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

πŸ” semantic_search

Finds relevant code symbols based on a natural language query or keywords.

Low

πŸ•ΈοΈ graph_query

Returns the blast radius of a specific symbol based on the AST Call-Graph.

Low

πŸ“– surgical_read

Extracts only the exact code snippet for a single function or class.

Massive Savings

πŸ—οΈ apply_surgical_patch

Replaces an exact code symbol with new code and triggers a background re-index.

Low

πŸ”„ rebuild_index

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/project

This 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": []
    }
  }
}
TIP

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 tools
apply_surgical_patchA

Replace an existing symbol with entirely new code. Re-indexing is automatic.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_codeYes
symbol_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbol_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

surgical_readA

Read only the exact code lines of a specific symbol_id (e.g. 'src/app.py::main').

ParametersJSON Schema
NameRequiredDescriptionDefault
symbol_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 6 tool updatesv0.1.0
    • First observedapply_surgical_patch
    • First observedget_index_status
    • First observedgraph_query
    • First observedrebuild_index
    • First observedsemantic_search
    • First observedsurgical_read

TDQS

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
  • A
    license
    A
    quality
    F
    maintenance
    Adds symbol-aware semantic search to coding agents like Codex CLI and Claude Code, enabling precise codebase context via natural language queries.
    4
    109
    276
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI agents with causal code memory by indexing repositories into a graph of symbols and edges, enabling context-aware retrieval of relevant code slices.
    3
    MIT

Latest Blog Posts

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