nanocode-mcp
Provides semantic code search capabilities using Ollama's local embedding model (nomic-embed-text) to index and search the codebase with natural language queries.
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., "@nanocode-mcpsearch the codebase for login functionality"
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.
nanocode MCP Server
A lightweight, fast, and secure Model Context Protocol (MCP) server that exposes coding agent tools for file manipulation, code searching, and shell command execution.
Overview
nanocode-mcp is an MCP server designed to give AI assistants and MCP clients the ability to interact with your local filesystem and execute shell commands. Built with FastMCP, it provides a streamlined set of tools for coding tasks.
Based on nanocode by 1rgs.
Author & Maintainer: The A-Tech Corporation PTY LTD
License: Open Source
Related MCP server: mcplens
Features
Available Tools
Tool | Description |
| Read file contents with line numbers, supports offset and limit |
| Write content to a file (creates or overwrites) |
| Edit a file by replacing text (find and replace) |
| Find files by glob pattern, sorted by modification time |
| Search files for regex patterns |
| Execute shell commands with timeout support |
| Search codebase using natural language queries (requires Ollama) |
| Manually trigger a full re-index of the codebase |
Semantic Search
The semantic_search tool enables natural language code search using vector embeddings. It indexes your codebase in the background and allows you to search for code using descriptive queries.
Requirements:
Ollama installed and running
nomic-embed-textmodel:ollama pull nomic-embed-text
How it works:
On startup, the server indexes supported file types in the background
Index is persisted to
.nanocode-mcp/vector_store.jsonTruncates files to ~6000 chars to stay within embedding model context limits
Supported file types: .py, .js, .ts, .jsx, .tsx, .json, .md, .txt, .yaml, .yml, .toml, .ini, .cfg, .sh, .bash, .zsh, .html, .css, .scss, .sql, .xml, .go, .rs, .java, .c, .cpp, .h, .hpp
| semantic_search | Search codebase using natural language queries (requires Ollama) |
| reindex_codebase | Manually trigger a full re-index of the codebase |
Semantic Search
The server includes a semantic search feature that indexes your codebase and enables natural language queries. It uses local embeddings via Ollama with the nomic-embed-text model.
Setup:
Install Ollama: https://ollama.com/
Pull the embedding model:
ollama pull nomic-embed-text
The server automatically indexes supported file types in the background on startup. Indexed files include: .py, .js, .ts, .jsx, .tsx, .json, .md, .txt, .yaml, .yml, .toml, .ini, .cfg, .sh, .bash, .zsh, .html, .css, .scss, .sql, .xml, .go, .rs, .java, .c, .cpp, .h, .hpp
Example:
semantic_search("find authentication logic")Installation
Prerequisites
Python 3.10 or higher
fastmcppackageOllama with
nomic-embed-textmodel (for semantic search)
Setup
Clone the repository
Install dependencies:
pip install -r requirements.txtNote:
openaiis only required for the CLI test client.Install fastmcp:
pip install fastmcp
Usage
Running the Server
Start the MCP server using stdio transport (default):
python mcp_server.pyFor HTTP transport:
python -c "from mcp_server import mcp; mcp.run(transport='http', host='0.0.0.0', port=8000)"Integrating with MCP Clients
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"nanocode": {
"command": "python",
"args": ["C:/path/to/mcp_server.py"]
}
}
}Other MCP Clients
For clients that support MCP over stdio, simply run:
python /path/to/mcp_server.pyCLI Test Client
A CLI-based test client is included for easy testing with Ollama.
Prerequisites:
Install Ollama: https://ollama.com/
Pull the model:
ollama pull qwen2.5:4bInstall additional dependency:
pip install openai
Run the client:
python client.pyFeatures:
Interactive chat interface with colored output
Automatic tool calling via the AI agent
Type
toolsto list available MCP toolsType
exitorquitto stop
Example session:
You: List all Python files in the current directory
[Tool Call] glob_search({'pattern': '**/*.py'})
[Result] ./mcp_server.py
./client.py
Assistant: I found 2 Python files in the current directory:
- mcp_server.py
- client.pyTool Reference
read_file
Read file contents with line numbers.
Parameters:
path(string): File path to readoffset(int, optional): Starting line number (0-indexed, default: 0)limit(int, optional): Maximum lines to read (default: all)
Returns: File content with line numbers prefixed
write_file
Write content to a file, creating or overwriting it.
Parameters:
path(string): File path to writecontent(string): Content to write
Returns: "ok" on success
edit_file
Edit a file by replacing text.
Parameters:
path(string): File path to editold_string(string): Text to find and replace (must exist)new_string(string): Replacement textreplace_all(bool, optional): Replace all occurrences (default: false)
Returns: "ok" on success, error message if not found or not unique
glob_search
Find files matching a glob pattern, sorted by modification time (newest first).
Parameters:
pattern(string): Glob pattern (e.g.,**/*.py)path(string, optional): Base directory (default: current directory)
Returns: Newline-separated list of matching files
grep_search
Search files for a regex pattern.
Parameters:
pattern(string): Regex pattern to searchpath(string, optional): Base directory (default: current directory)
Returns: Matching lines as filepath:line_number:content (max 50 results)
run_bash
Execute a shell command.
Parameters:
command(string): Shell command to executetimeout(int, optional): Timeout in seconds (default: 30)
Returns: Command output (stdout and stderr combined)
semantic_search
Search the codebase using natural language queries via vector embeddings.
Parameters:
query(string): Natural language query describing what to search forlimit(int, optional): Maximum results to return (default: 5)
Returns: Ranked search results with file paths, similarity scores, and context snippets
Requires: Ollama running with nomic-embed-text model
reindex_codebase
Manually trigger a full re-index of the codebase for semantic search.
Parameters: None
Returns: Status message about the re-indexing operation
semantic_search
Search the codebase using natural language queries via vector embeddings.
Parameters:
query(string): Natural language query describing what to search forlimit(int, optional): Maximum results to return (default: 5)
Returns: Ranked search results with file paths, similarity scores, and context snippets
Requires: Ollama running with nomic-embed-text model
reindex_codebase
Manually trigger a full re-index of the codebase for semantic search.
Parameters: None
Returns: Status message about the re-indexing operation
semantic_search
Search the codebase using natural language queries.
Parameters:
query(string): Natural language query describing what to search forlimit(int, optional): Maximum results to return (default: 5)
Returns: Ranked search results with file paths, similarity scores, and context snippets
Requires: Ollama with nomic-embed-text model running
reindex_codebase
Manually trigger a full re-index of the codebase.
Parameters: None
Returns: Status message about the re-indexing operation
Note: Re-indexing runs in the background and clears the existing index
Security Considerations
⚠️ Warning: This server provides direct filesystem access and shell command execution capabilities. Use with caution:
Only connect to trusted MCP clients
Review commands before execution in sensitive environments
Consider running in a containerized or sandboxed environment
The
run_bashtool has timeout protection but no command restrictions
Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
License
Open Source - see LICENSE file for details.
Made with ❤️ by The A-Tech Corporation PTY LTD
Feedback & Community
Found this MCP server genuinely useful? I'd love to hear from you.
Email: hamish@atech.industries
Join our free Open Source AI Builders Club on Skool: https://www.skool.com/open-source-ai-builders-club/about?ref=da946a67c5c646e991b96ea9ce7ad9e4
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/hamishfromatech/nanocode-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server