Code Embeddings

by davidvc

9 stars
Not rated
GitHub

About

A knowledge management tool for code repositories using vector embeddings, powered by a local Ollama service.

Details

Author
davidvc
Repository
davidvc/code-knowledge-mcptool
GitHub stars
9
Categories
Developer Tools, Knowledge Base, Other, AI, Search

- Local vector storage for code knowledge
- Efficient embedding generation using Ollama
- Support for multiple file types
- Context-aware code understanding
- Integration with RooCode and Cline via MCP
- RAG-based context augmentation
- Persistent knowledge storage

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Code Embeddings
    Command (node, npx, python, etc.) python
    Arguments
    • Argument 1 -m
    • Argument 2 code_knowledge_tool.mcp_tool
    Environment
    • PYTHONPATH $${workspaceFolder}

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

python -m venv venv
source venv/bin/activate

python -m pip install --upgrade pip build

curl https://ollama.ai/install.sh | sh


pip install dist/code_knowledge_tool-0.1.0-py3-none-any.whl

This option is best if you want to modify the tool or contribute to its development:


pip install -e ".[dev]"

The project follows an integration-first testing approach, focusing on end-to-end functionality and MCP contract compliance. The test suite consists of:

1. MCP Contract Tests
- Tool registration and execution
- Resource management
- Knowledge operations
- Error handling

2. Package Build Tests
- Installation verification
- Dependency resolution
- MCP server initialization
- Basic functionality

To run the tests:


pip install -e ".[dev]"

ollama serve

The tests use a temporary directory (test_knowledge_store) that is cleaned up automatically between test runs.

For more details on the testing strategy and patterns, see the documentation in docs/.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "code embeddings": {
            "env": {
                "PYTHONPATH": "$${workspaceFolder}"
            },
            "args": [
                "-m",
                "code_knowledge_tool.mcp_tool"
            ],
            "command": "python"
        }
    }
}

Linux

{
    "env": {
        "PYTHONPATH": "$${workspaceFolder}"
    },
    "args": [
        "-m",
        "code_knowledge_tool.mcp_tool"
    ],
    "command": "python"
}

Macos

{
    "env": {
        "PYTHONPATH": "$${workspaceFolder}"
    },
    "args": [
        "-m",
        "code_knowledge_tool.mcp_tool"
    ],
    "command": "python"
}

Windows

{
    "env": {
        "PYTHONPATH": "$${workspaceFolder}"
    },
    "args": [
        "-m",
        "code_knowledge_tool.mcp_tool"
    ],
    "command": "python"
}

Code Knowledge Tool

A knowledge management tool for code repositories using vector embeddings. This tool helps maintain and query knowledge about your codebase using advanced embedding techniques.

Building and Installing

1. Build the Package

First, you need to build the distribution files:

# Clone the repository
git clone https://github.com/yourusername/code-knowledge-tool.git
cd code-knowledge-tool

Create and activate a virtual environment

python -m venv venv source venv/bin/activate

Install build tools

python -m pip install --upgrade pip build

Build the package

python -m build

This will create two files in the dist/ directory:
- code_knowledge_tool-0.1.0-py3-none-any.whl (wheel file for installation)
- code_knowledge_tool-0.1.0.tar.gz (source distribution)

2. Install the Package

Prerequisites

1. Ensure Ollama is installed and running:

# Install Ollama (if not already installed)
curl https://ollama.ai/install.sh | sh

Start Ollama service

ollama serve

2. Install the package:

Option 1: Install from wheel file (recommended for usage)
# Navigate to where you built the package
cd /path/to/code_knowledge_tool

Install from the wheel file

pip install dist/code_knowledge_tool-0.1.0-py3-none-any.whl
Option 2: Install in editable mode (recommended for development)

This option is best if you want to modify the tool or contribute to its development:

# Assuming you're already in the code-knowledge-tool directory

and have activated your virtual environment

Install in editable mode with development dependencies

pip install -e ".[dev]"

Integration with RooCode/Cline

1. Copy the MCP configuration to your settings:

For Cline (VSCode):

# Open the settings file
open ~/Library/Application\ Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json

Add this configuration:

{
"mcpServers": {
"code_knowledge": {
"command": "python",
"args": ["-m", "code_knowledge_tool.mcp_tool"],
"env": {
"PYTHONPATH": "${workspaceFolder}"
}
}
}
}

For RooCode:

# Open the settings file
open ~/Library/Application\ Support/RooCode/roocode_config.json

Add the same configuration as above.

2. Restart RooCode/Cline to load the new tool.

Using as Memory Bank and RAG Context Provider

This tool can serve as your project's memory bank and RAG context provider. To set this up:

1. Copy the provided template to your project:

cp clinerules_template.md /path/to/your/project/.clinerules

2. Customize the rules and patterns in .clinerules for your project's needs

The template includes comprehensive instructions for:
- Knowledge base management
- RAG-based development workflows
- Code quality guidelines
- Memory management practices

See clinerules_template.md for the full configuration and usage details.

Features

- Local vector storage for code knowledge
- Efficient embedding generation using Ollama
- Support for multiple file types
- Context-aware code understanding
- Integration with RooCode and Cline via MCP
- RAG-based context augmentation
- Persistent knowledge storage

Requirements

- Python 3.8 or higher
- Ollama service running locally
- chromadb for vector operations

Development

Running Tests

The project follows an integration-first testing approach, focusing on end-to-end functionality and MCP contract compliance. The test suite consists of:

1. MCP Contract Tests
- Tool registration and execution
- Resource management
- Knowledge operations
- Error handling

2. Package Build Tests
- Installation verification
- Dependency resolution
- MCP server initialization
- Basic functionality

To run the tests:

# Install test dependencies
pip install -e ".[dev]"

Run all tests

pytest

Run specific test suites

pytest tests/integration/test_mcp_contract.py -v # MCP functionality pytest tests/integration/test_package_build.py -v # Installation verification

Test Environment Requirements:

# Ensure Ollama is running
ollama serve

The tests use a temporary directory (test_knowledge_store) that is cleaned up automatically between test runs.

For more details on the testing strategy and patterns, see the documentation in docs/.

Future Distribution

If you want to make this package available through pip (i.e., pip install code-knowledge-tool), you would need to:
1. Register an account on PyPI
2. Install twine: pip install twine
3. Upload your distribution: twine upload dist/*

However, for now, use the local build and installation methods described above.

License

MIT License

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.