Skip to main content
Glama
amalikn

smart-coding-mcp

by amalikn

Smart Coding MCP

npm version npm downloads License: MIT Node.js

An extensible Model Context Protocol (MCP) server that provides intelligent semantic code search for AI assistants. Built with local AI models using Matryoshka Representation Learning (MRL) for flexible embedding dimensions (64-768d).

What This Does

AI coding assistants work better when they can find relevant code quickly. Traditional keyword search falls short - if you ask "where do we handle authentication?" but your code uses "login" and "session", keyword search misses it.

This MCP server solves that by indexing your codebase with AI embeddings. Your AI assistant can search by meaning instead of exact keywords, finding relevant code even when the terminology differs.

Example

Related MCP server: Claude Context MCP

Available Tools

🔍 a_semantic_search - Find Code by Meaning

The primary tool for codebase exploration. Uses AI embeddings to understand what you're looking for, not just match keywords.

How it works: Converts your natural language query into a vector, then finds code chunks with similar meaning using cosine similarity + exact match boosting.

Best for:

  • Exploring unfamiliar codebases: "How does authentication work?"

  • Finding related code: "Where do we validate user input?"

  • Conceptual searches: "error handling patterns"

  • Works even with typos: "embeding modle initializashun" still finds embedding code

Example queries:

"Where do we handle cache persistence?"
"How is the database connection managed?"
"Find all API endpoint definitions"

đŸ“Ļ d_check_last_version - Package Version Lookup

Fetches the latest version of any package from its official registry. Supports 20+ ecosystems.

How it works: Queries official package registries (npm, PyPI, Crates.io, etc.) in real-time. No guessing, no stale training data.

Supported ecosystems: npm, PyPI, Crates.io, Maven, Go, RubyGems, NuGet, Packagist, Hex, pub.dev, Homebrew, Conda, and more.

Best for:

  • Before adding dependencies: "express" → 4.18.2

  • Checking for updates: "pip:requests" → 2.31.0

  • Multi-ecosystem projects: "npm:react", "go:github.com/gin-gonic/gin"

Example usage:

"What's the latest version of lodash?"
"Check if there's a newer version of axios"

🔄 b_index_codebase - Manual Reindexing

Triggers a full reindex of your codebase. Normally not needed since indexing is automatic and incremental.

How it works: Scans all files, generates new embeddings, and updates the SQLite cache. Uses progressive indexing so you can search while it runs.

When to use:

  • After major refactoring or branch switches

  • After pulling large changes from remote

  • If search results seem stale or incomplete

  • After changing embedding configuration (dimension, model)


đŸ—‘ī¸ c_clear_cache - Reset Everything

Deletes the embeddings cache entirely, forcing a complete reindex on next search.

How it works: Removes the .smart-coding-cache/ directory. Next search or index operation starts fresh.

When to use:

  • Cache corruption (rare, but possible)

  • Switching embedding models or dimensions

  • Starting fresh after major codebase restructure

  • Troubleshooting search issues


📂 e_set_workspace - Switch Projects

Changes the workspace path at runtime without restarting the server.

How it works: Updates the internal workspace reference, creates cache folder for new path, and optionally triggers reindexing.

When to use:

  • Working on multiple projects in one session

  • Monorepo navigation between packages

  • Switching between related repositories


â„šī¸ f_get_status - Server Health Check

Returns comprehensive status information about the MCP server.

What it shows:

  • Server version and uptime

  • Workspace path and cache location

  • Indexing status (ready, indexing, percentage complete)

  • Files indexed and chunk count

  • Model configuration (name, dimension, device)

  • Cache size and type

When to use:

  • Start of session to verify everything is working

  • Debugging connection or indexing issues

  • Checking indexing progress on large codebases


Installation

npm install -g smart-coding-mcp

To update:

npm update -g smart-coding-mcp

IDE Integration

Detailed setup instructions for your preferred environment:

IDE / App

Setup Guide

${workspaceFolder} Support

VS Code

View Guide

✅ Yes

Cursor

View Guide

✅ Yes

Windsurf

View Guide

❌ Absolute paths only

Claude Desktop

View Guide

❌ Absolute paths only

OpenCode

View Guide

❌ Absolute paths only

Raycast

View Guide

❌ Absolute paths only

Antigravity

View Guide

❌ Absolute paths only

Quick Setup

Add to your MCP config file:

{
  "mcpServers": {
    "smart-coding-mcp": {
      "command": "smart-coding-mcp",
      "args": ["--workspace", "/absolute/path/to/your/project"]
    }
  }
}

Config File Locations

IDE

OS

Path

Claude Desktop

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Claude Desktop

Windows

%APPDATA%\Claude\claude_desktop_config.json

OpenCode

Global

~/.config/opencode/opencode.json

OpenCode

Project

opencode.json in project root

Windsurf

macOS

~/.codeium/windsurf/mcp_config.json

Windsurf

Windows

%USERPROFILE%\.codeium\windsurf\mcp_config.json

Multi-Project Setup

{
  "mcpServers": {
    "smart-coding-frontend": {
      "command": "smart-coding-mcp",
      "args": ["--workspace", "/path/to/frontend"]
    },
    "smart-coding-backend": {
      "command": "smart-coding-mcp",
      "args": ["--workspace", "/path/to/backend"]
    }
  }
}

Environment Variables

Customize behavior via environment variables:

Variable

Default

Description

SMART_CODING_VERBOSE

false

Enable detailed logging

SMART_CODING_MAX_RESULTS

5

Max search results returned

SMART_CODING_BATCH_SIZE

100

Files to process in parallel

SMART_CODING_MAX_FILE_SIZE

1048576

Max file size in bytes (1MB)

SMART_CODING_CHUNK_SIZE

25

Lines of code per chunk

SMART_CODING_EMBEDDING_DIMENSION

128

MRL dimension (64, 128, 256, 512, 768)

SMART_CODING_EMBEDDING_MODEL

nomic-ai/nomic-embed-text-v1.5

AI embedding model

SMART_CODING_DEVICE

cpu

Inference device (cpu, webgpu, auto)

SMART_CODING_SEMANTIC_WEIGHT

0.7

Weight for semantic vs exact matching

SMART_CODING_EXACT_MATCH_BOOST

1.5

Boost multiplier for exact text matches

SMART_CODING_MAX_CPU_PERCENT

50

Max CPU usage during indexing (10-100%)

SMART_CODING_CHUNKING_MODE

smart

Code chunking (smart, ast, line)

SMART_CODING_WATCH_FILES

false

Auto-reindex on file changes

SMART_CODING_AUTO_INDEX_DELAY

5000

Delay before background indexing (ms), false to disable

Example with env vars:

{
  "mcpServers": {
    "smart-coding-mcp": {
      "command": "smart-coding-mcp",
      "args": ["--workspace", "/path/to/project"],
      "env": {
        "SMART_CODING_VERBOSE": "true",
        "SMART_CODING_MAX_RESULTS": "10",
        "SMART_CODING_EMBEDDING_DIMENSION": "256"
      }
    }
  }
}

Performance

Progressive Indexing - Search works immediately while indexing continues in the background. No waiting for large codebases.

Resource Throttling - CPU limited to 50% by default. Your machine stays responsive during indexing.

SQLite Cache - 5-10x faster than JSON. Automatic migration from older JSON caches.

Incremental Updates - Only changed files are re-indexed. Saves every 5 batches, so no data loss if interrupted.

Optimized Defaults - 128d embeddings (2x faster than 256d with minimal quality loss), smart batch sizing, parallel processing.

How It Works

flowchart TB
    subgraph IDE["IDE / AI Assistant"]
        Agent["AI Agent<br/>(Claude, GPT, Gemini)"]
    end

    subgraph MCP["Smart Coding MCP Server"]
        direction TB
        Protocol["Model Context Protocol<br/>JSON-RPC over stdio"]
        Tools["MCP Tools<br/>semantic_search | index_codebase | set_workspace | get_status"]

        subgraph Indexing["Indexing Pipeline"]
            Discovery["File Discovery<br/>glob patterns + smart ignore"]
            Chunking["Code Chunking<br/>Smart (regex) / AST (Tree-sitter)"]
            Embedding["AI Embedding<br/>transformers.js + ONNX Runtime"]
        end

        subgraph AI["AI Model"]
            Model["nomic-embed-text-v1.5<br/>Matryoshka Representation Learning"]
            Dimensions["Flexible Dimensions<br/>64 | 128 | 256 | 512 | 768"]
            Normalize["Layer Norm → Slice → L2 Normalize"]
        end

        subgraph Search["Search"]
            QueryEmbed["Query → Vector"]
            Cosine["Cosine Similarity"]
            Hybrid["Hybrid Search<br/>Semantic + Exact Match Boost"]
        end
    end

    subgraph Storage["Cache"]
        Vectors["SQLite Database<br/>embeddings.db (WAL mode)"]
        Hashes["File Hashes<br/>Incremental updates"]
        Progressive["Progressive Indexing<br/>Search works during indexing"]
    end

    Agent <-->|"MCP Protocol"| Protocol
    Protocol --> Tools

    Tools --> Discovery
    Discovery --> Chunking
    Chunking --> Embedding
    Embedding --> Model
    Model --> Dimensions
    Dimensions --> Normalize
    Normalize --> Vectors

    Tools --> QueryEmbed
    QueryEmbed --> Model
    Cosine --> Hybrid
    Vectors --> Cosine
    Hybrid --> Agent

Tech Stack

Component

Technology

Protocol

Model Context Protocol (JSON-RPC)

AI Model

nomic-embed-text-v1.5 (MRL)

Inference

transformers.js + ONNX Runtime

Chunking

Smart regex / Tree-sitter AST

Search

Cosine similarity + exact match boost

Cache

SQLite with WAL mode

Privacy

Everything runs 100% locally:

  • AI model runs on your machine (no API calls)

  • Code never leaves your system

  • No telemetry or analytics

  • Cache stored in .smart-coding-cache/

Research Background

This project builds on research from Cursor showing that semantic search improves AI coding agent performance by 12.5% on average. The key insight: AI assistants benefit more from relevant context than from large amounts of context.

License

MIT License - Copyright (c) 2025 Omar Haris

See LICENSE for full text.

Local Customization Tracking

  • Local machine-specific integration, client wiring, and operational state are tracked under the external data root.

  • Local metadata path: /Volumes/Data/_ai/_mcp/mcp-data/<name>/meta

  • Repo-side capability contract is in docs/local-capability/.

  • Secrets are never stored in repo docs; only variable names and loading locations are documented.

Local Enhancements Capture (2026-03-13)

  • Captured current local changes, configuration updates, and operational enhancements for GitHub publication.

  • Includes synchronization with sub-repo link updates where applicable.

  • Cross-reference local docs and capability notes added in this repository.

Available Tools

6 tools
b_index_codebaseA
Idempotent

Manually trigger a full reindex of the codebase. This will scan all files and update the embeddings cache. Useful after large code changes or if the index seems out of date.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce reindex even if files haven't changed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool non-read-only, idempotent, and non-destructive. The description adds behavioral context by explaining that a reindex scans all files and updates the embeddings cache, which tells the agent what side effects to expect beyond the annotation flags.

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 two sentences with no filler. The primary action is front-loaded ('Manually trigger a full reindex'), followed by the mechanism and a practical use case. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, one-optional-parameter tool with strong annotations and no output schema, the description is complete. It states the action, the effect, and when it is useful, which is sufficient for an agent to decide to invoke it correctly.

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 schema fully documents the single 'force' parameter with a clear description, so the description does not need to add much. The phrase 'full reindex' and 'even if files haven't changed' are consistent with the parameter, but the description itself does not add new semantic meaning beyond the schema.

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 opens with a specific verb and resource: 'Manually trigger a full reindex of the codebase.' It further clarifies the action by stating it will 'scan all files and update the embeddings cache,' making it clearly distinct from sibling tools like a_semantic_search or c_clear_cache.

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 description provides clear context for when to use the tool: 'Useful after large code changes or if the index seems out of date.' It does not explicitly mention alternatives or when not to use it, but the guidance is specific enough to route an agent correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

c_clear_cacheA
DestructiveIdempotent

Clears the embeddings cache, forcing a complete reindex on next search or manual index operation. Useful when encountering cache corruption or after major codebase changes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral detail beyond the annotations: clearing the cache 'forces a complete reindex on next search or manual index operation,' which helps the agent anticipate downstream effects. It does not contradict the destructiveHint or idempotentHint annotations.

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 with no filler: the action and consequence are front-loaded, and the usage context is given in one short clause. Every word contributes to understanding the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter destructive operation with clear annotations, the description covers what the tool does, what happens afterward, and when to use it. Nothing necessary for a correct invocation is missing.

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 zero parameters and the schema description coverage is 100%, so there are no parameter details for the description to add. The baseline of 4 applies because there is nothing missing for an agent to invoke the tool correctly.

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 identifies the action ('clears') and the specific resource ('embeddings cache'), and explains the immediate consequence ('forcing a complete reindex'). This makes the tool's purpose unambiguous and distinct from siblings like a_semantic_search and b_index_codebase.

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 description gives explicit when-to-use guidance: 'when encountering cache corruption or after major codebase changes.' It does not explicitly state when not to use the tool or name alternatives, but the stated use cases are clear enough for an agent to decide appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

d_check_last_versionA
Read-onlyIdempotent

Get the latest version of a library/package from its official registry. Supported ecosystems: npm (JS/TS), PyPI (Python), Packagist (PHP), Crates.io (Rust), Maven (Java/Kotlin), Go, RubyGems, NuGet (.NET), Hex (Elixir), CRAN (R), CPAN (Perl), pub.dev (Dart), Homebrew (macOS), Conda (Python/R), Clojars (Clojure), Hackage (Haskell), Julia, Swift PM, Chocolatey (Windows). Returns the version string to help you avoid using outdated dependencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageYesPackage name (e.g., 'express', 'requests', 'flutter', 'brew:wget', 'conda:numpy', 'swift:apple/swift-nio'). Use prefixes for explicit ecosystem detection.
ecosystemNoPackage ecosystem (optional - auto-detected from prefix)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds that the return value is a version string and that lookups target official registries, which is valuable given the absence of an output schema.

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?

One front-loaded sentence with no filler. The long ecosystem list earns its place by defining the tool's scope and the package registries it supports.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read-only lookup tool. Annotations cover side effects, the schema covers all parameters, and the description states the return value, so an agent has what it needs to invoke the tool correctly.

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?

Schema coverage is 100%, so both package and ecosystem parameters are already described in the schema, including the ecosystem enum. The description reinforces the supported ecosystems but does not add meaningfully beyond the schema.

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?

States a specific action ('Get the latest version'), a clear object ('library/package'), and a source ('official registry'). This clearly distinguishes it from sibling tools like a_semantic_search and f_get_status, which serve unrelated purposes.

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 'help you avoid using outdated dependencies' gives a concrete use case for when to call this tool. It does not explicitly name alternatives, but the sibling tools are all unrelated in scope, so no exclusion is really needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

e_set_workspaceA

Change the project workspace path at runtime. Use this when you detect the current workspace is incorrect or you need to switch to a different project directory. Creates cache folder automatically and optionally re-indexes the new workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the new workspace directory
reindexNoWhether to trigger re-indexing after switching (default: true)
clearCacheNoWhether to clear existing cache before switching (default: false)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the disclosure burden. It reveals a side effect not in the schema ('Creates cache folder automatically') and mentions optional re-indexing. However, it doesn't describe failure behavior, whether the old workspace index is preserved or removed, or whether re-indexing is synchronous; for a mutation with no annotation safety net, this is only moderate transparency.

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?

Three sentences, no filler, with the core action first, followed by usage guidance and side effects. Every sentence earns its place, and structure aids scanning.

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?

The description covers purpose, when to use, and key side effects, and the schema handles parameter meaning. It doesn't describe return values or error conditions, which is a gap given there's no output schema or annotations, but an agent has enough context to select and call it correctly in the common case.

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?

All three parameters are fully documented in the schema (100% coverage), so the baseline applies. The description adds no parameter-specific detail beyond what the schema already provides; it only restates the reindex concept in prose.

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?

States the exact operation ('Change the project workspace path at runtime'), naming both the action and the resource. It is clearly distinct from sibling tools such as a_semantic_search or c_clear_cache, which have different scopes.

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?

Gives an explicit trigger condition ('when you detect the current workspace is incorrect or you need to switch to a different project directory'), so an agent knows when to invoke it. It does not enumerate when-not-to-use cases or explicitly name alternative sibling tools, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

f_get_statusA

Get comprehensive status information about the Smart Coding MCP server. Returns version, workspace path, model configuration, indexing status, and cache information. Useful for understanding the current state of the semantic search system.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. The verbs 'Get' and 'Returns' imply a read-only operation and the description lists the types of information returned, but it does not explicitly state that the tool has no side effects, requires no special permissions, or has any operational caveats.

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 two sentences with no filler. It opens with the core purpose, then lists return categories, then adds a use case. Every sentence earns its place.

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?

For a zero-parameter status tool without an output schema, the description does the necessary work by naming the return categories. It is adequate for an agent to know what the tool does and roughly what it returns, though it could be more explicit about the exact shape of the response or any operational caveats.

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 zero parameters, and the schema description coverage is 100%. Per the calibration baseline, no parameter documentation is needed, and the description's focus on return values 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 a specific verb ('Get') and resource ('status information about the Smart Coding MCP server'), and enumerates the returned data: version, workspace path, model configuration, indexing status, and cache information. However, it does not explicitly distinguish itself from the sibling d_check_last_version, which also appears version-related, so it misses the strongest form of sibling differentiation.

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 gives a clear use context: 'Useful for understanding the current state of the semantic search system.' This implies when the tool is appropriate, but it offers no explicit guidance about when not to use it or which alternative sibling to prefer for narrower queries like version-only checks.

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 updatesv2.3.3
    • First observeda_semantic_search
    • First observedb_index_codebase
    • First observedc_clear_cache
    • First observedd_check_last_version
    • First observede_set_workspace
    • First observedf_get_status

TDQS

A3.9/5.0
Disambiguation4/5

Each tool has a clearly described purpose and most are easy to distinguish. The main ambiguity is between b_index_codebase and c_clear_cache, since both can result in a rebuilt embedding index, but their described triggers differ enough to avoid serious confusion.

Naming Consistency3/5

The names use consistent snake_case and mostly follow a verb_noun pattern, but the arbitrary a_, b_, c_ prefixes are not semantically meaningful and a_semantic_search breaks the verb_noun pattern by leading with an adjective. The overall style is readable but mixes conventions.

Tool Count4/5

Six tools is a reasonable size for a focused semantic code search server. However, d_check_last_version is unrelated to the core semantic-search/indexing workflow, so the tool set is slightly less focused than it could be.

Completeness4/5

The core workflow is well covered: workspace setup, indexing, cache invalidation, semantic search, and server status. Minor gaps exist around configuration control or more granular index inspection, but agents can complete the primary tasks without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

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
    A
    quality
    F
    maintenance
    Provides intelligent semantic code search using local AI embeddings, enabling natural language queries to find relevant code by meaning rather than exact keywords. Indexes codebases in the background with smart project detection and privacy-first local processing.
    6
    39
    199
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables semantic code search for AI assistants by indexing codebases with embeddings and Tree-sitter, returning relevant snippets via natural language queries.
    15
    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/amalikn/smart-coding-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server