{"id":34503946,"url":"https://github.com/pleaseai/context-please","last_synced_at":"2026-01-31T06:10:40.370Z","repository":{"id":318979907,"uuid":"1064275522","full_name":"pleaseai/context-please","owner":"pleaseai","description":"Code search MCP for Claude Code. Make entire codebase the context for any coding agent.","archived":false,"fork":false,"pushed_at":"2025-12-24T06:55:47.000Z","size":8545,"stargazers_count":10,"open_issues_count":23,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-25T13:46:56.363Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/chatbot-f/context-please/tree/master/docs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pleaseai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-25T19:48:41.000Z","updated_at":"2025-12-24T00:27:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"8296b596-9970-40bd-bacb-6965fcc315bc","html_url":"https://github.com/pleaseai/context-please","commit_stats":null,"previous_names":["chatbot-pf/context-please","pleaseai/context-please"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/pleaseai/context-please","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pleaseai%2Fcontext-please","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pleaseai%2Fcontext-please/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pleaseai%2Fcontext-please/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pleaseai%2Fcontext-please/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pleaseai","download_url":"https://codeload.github.com/pleaseai/context-please/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pleaseai%2Fcontext-please/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28931095,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T04:05:25.756Z","status":"ssl_error","status_checked_at":"2026-01-31T04:02:35.005Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-24T02:40:10.987Z","updated_at":"2026-01-31T06:10:40.364Z","avatar_url":"https://github.com/pleaseai.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n### Your entire codebase as Claude's context\n\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Node.js](https://img.shields.io/badge/Node.js-20%2B-green.svg)](https://nodejs.org/)\n[![Documentation](https://img.shields.io/badge/Documentation-📚-orange.svg)](docs/)\n[![npm - core](https://img.shields.io/npm/v/@pleaseai/context-please-core?label=%40pleaseai%2Fcontext-please-core\u0026logo=npm)](https://www.npmjs.com/package/@pleaseai/context-please-core)\n[![npm - mcp](https://img.shields.io/npm/v/@pleaseai/context-please-mcp?label=%40pleaseai%2Fcontext-please-mcp\u0026logo=npm)](https://www.npmjs.com/package/@pleaseai/context-please-mcp)\n[![code style](https://antfu.me/badge-code-style.svg)](https://github.com/antfu/eslint-config)\n\u003c/div\u003e\n\n\u003e **Note:** This is a fork of [claude-context](https://github.com/zilliztech/claude-context) by Zilliz, maintained by PleaseAI with additional features and improvements.\n\u003e\n\u003e **Extensions Status:** Chrome and VSCode extensions are currently TBD (To Be Determined) and not yet available in this fork.\n\n**Context Please** is an MCP plugin that adds semantic code search to Claude Code and other AI coding agents, giving them deep context from your entire codebase.\n\n🧠 **Your Entire Codebase as Context**: Claude Context uses semantic search to find all relevant code from millions of lines. No multi-round discovery needed. It brings results straight into the Claude's context.\n\n💰 **Cost-Effective for Large Codebases**: Instead of loading entire directories into Claude for every request, which can be very expensive, Claude Context efficiently stores your codebase in a vector database and only uses related code in context to keep your costs manageable.\n\n---\n\n## 🚀 Demo\n\n![img](https://lh7-rt.googleusercontent.com/docsz/AD_4nXf2uIf2c5zowp-iOMOqsefHbY_EwNGiutkxtNXcZVJ8RI6SN9DsCcsc3amXIhOZx9VcKFJQLSAqM-2pjU9zoGs1r8GCTUL3JIsLpLUGAm1VQd5F2o5vpEajx2qrc77iXhBu1zWj?key=qYdFquJrLcfXCUndY-YRBQ)\n\nModel Context Protocol (MCP) allows you to integrate Claude Context with your favorite AI coding assistants, e.g. Claude Code.\n\n## Quick Start\n\n### Prerequisites\n\n**🚀 New: Zero-Config Local Mode with FAISS**\n\nYou can now use Context Please with **no external database required**! Simply provide an OpenAI API key, and FAISS will handle local storage automatically. Perfect for getting started quickly or working with small-to-medium codebases.\n\nFor production deployments or large codebases, consider using Zilliz Cloud or Qdrant:\n\n\u003cdetails\u003e\n\u003csummary\u003eGet a free vector database on Zilliz Cloud 👈\u003c/summary\u003e\n\nClaude Context needs a vector database. You can [sign up](https://cloud.zilliz.com/signup?utm_source=github\u0026utm_medium=referral\u0026utm_campaign=2507-codecontext-readme) on Zilliz Cloud to get an API key.\n\n![](assets/signup_and_get_apikey.png)\n\nCopy your Personal Key to replace `your-zilliz-cloud-api-key` in the configuration examples.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eGet OpenAI API Key for embedding model\u003c/summary\u003e\n\nYou need an OpenAI API key for the embedding model. You can get one by signing up at [OpenAI](https://platform.openai.com/api-keys).  \n\nYour API key will look like this: it always starts with `sk-`.  \nCopy your key and use it in the configuration examples below as `your-openai-api-key`.\n\n\u003c/details\u003e\n\n### Configure MCP for Claude Code\n\n**System Requirements:**\n\n- Node.js \u003e= 20.0.0 and \u003c 24.0.0\n\n\u003e Claude Context is not compatible with Node.js 24.0.0, you need downgrade it first if your node version is greater or equal to 24.\n\n#### Configuration\n\n**Option 1: Local Mode with FAISS (Recommended for Getting Started)**\n\nThe simplest way to get started - no external database required:\n\n```bash\nclaude mcp add context-please \\\n  -e OPENAI_API_KEY=sk-your-openai-api-key \\\n  -- npx @pleaseai/context-please-mcp@latest\n```\n\n**Option 2: Cloud Mode with Zilliz (For Production/Large Codebases)**\n\nFor larger codebases or production deployments:\n\n```bash\nclaude mcp add context-please \\\n  -e OPENAI_API_KEY=sk-your-openai-api-key \\\n  -e MILVUS_TOKEN=your-zilliz-cloud-api-key \\\n  -- npx @pleaseai/context-please-mcp@latest\n```\n\nSee the [Claude Code MCP documentation](https://docs.anthropic.com/en/docs/claude-code/mcp) for more details about MCP server management.\n\n### Other MCP Client Configurations\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eOpenAI Codex CLI\u003c/strong\u003e\u003c/summary\u003e\n\nCodex CLI uses TOML configuration files:\n\n1. Create or edit the `~/.codex/config.toml` file.\n\n2. Add the following configuration:\n\n```toml\n# IMPORTANT: the top-level key is `mcp_servers` rather than `mcpServers`.\n[mcp_servers.context-please]\ncommand = \"npx\"\nargs = [\"@pleaseai/context-please-mcp@latest\"]\nenv = { \"OPENAI_API_KEY\" = \"your-openai-api-key\", \"MILVUS_TOKEN\" = \"your-zilliz-cloud-api-key\" }\n# Optional: override the default 10s startup timeout\nstartup_timeout_ms = 20000\n```\n\n3. Save the file and restart Codex CLI to apply the changes.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGemini CLI\u003c/strong\u003e\u003c/summary\u003e\n\nGemini CLI requires manual configuration through a JSON file:\n\n1. Create or edit the `~/.gemini/settings.json` file.\n2. Add the following configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"context-please\": {\n      \"command\": \"npx\",\n      \"args\": [\"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n      }\n    }\n  }\n}\n```\n\n3. Save the file and restart Gemini CLI to apply the changes.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eQwen Code\u003c/strong\u003e\u003c/summary\u003e\n\nCreate or edit the `~/.qwen/settings.json` file and add the following configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"claude-context\": {\n      \"command\": \"npx\",\n      \"args\": [\"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"MILVUS_ADDRESS\": \"your-zilliz-cloud-public-endpoint\",\n        \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCursor\u003c/strong\u003e\u003c/summary\u003e\n\n\u003c!-- Cursor deeplink temporarily removed - TBD for context-please --\u003e\n\nGo to: `Settings` -\u003e `Cursor Settings` -\u003e `MCP` -\u003e `Add new global MCP server`\n\nPasting the following configuration into your Cursor `~/.cursor/mcp.json` file is the recommended approach. You may also install in a specific project by creating `.cursor/mcp.json` in your project folder. See [Cursor MCP docs](https://docs.cursor.com/context/model-context-protocol) for more info.\n\n```json\n{\n  \"mcpServers\": {\n    \"context-please\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"MILVUS_ADDRESS\": \"your-zilliz-cloud-public-endpoint\",\n        \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eVoid\u003c/strong\u003e\u003c/summary\u003e\n\nGo to: `Settings` -\u003e `MCP` -\u003e `Add MCP Server`\n\nAdd the following configuration to your Void MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"context-please\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"MILVUS_ADDRESS\": \"your-zilliz-cloud-public-endpoint\",\n        \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eClaude Desktop\u003c/strong\u003e\u003c/summary\u003e\n\nAdd to your Claude Desktop configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"claude-context\": {\n      \"command\": \"npx\",\n      \"args\": [\"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"MILVUS_ADDRESS\": \"your-zilliz-cloud-public-endpoint\",\n        \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWindsurf\u003c/strong\u003e\u003c/summary\u003e\n\nWindsurf supports MCP configuration through a JSON file. Add the following configuration to your Windsurf MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"context-please\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"MILVUS_ADDRESS\": \"your-zilliz-cloud-public-endpoint\",\n        \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eVS Code\u003c/strong\u003e\u003c/summary\u003e\n\nThe Claude Context MCP server can be used with VS Code through MCP-compatible extensions. Add the following configuration to your VS Code MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"context-please\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"MILVUS_ADDRESS\": \"your-zilliz-cloud-public-endpoint\",\n        \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n      }\n    }\n  }\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCherry Studio\u003c/strong\u003e\u003c/summary\u003e\n\nCherry Studio allows for visual MCP server configuration through its settings interface. While it doesn't directly support manual JSON configuration, you can add a new server via the GUI:\n\n1. Navigate to **Settings → MCP Servers → Add Server**.\n2. Fill in the server details:\n   - **Name**: `claude-context`\n   - **Type**: `STDIO`\n   - **Command**: `npx`\n   - **Arguments**: `[\"@pleaseai/context-please-mcp@latest\"]`\n   - **Environment Variables**:\n     - `OPENAI_API_KEY`: `your-openai-api-key`\n     - `MILVUS_ADDRESS`: `your-zilliz-cloud-public-endpoint`\n     - `MILVUS_TOKEN`: `your-zilliz-cloud-api-key`\n3. Save the configuration to activate the server.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCline\u003c/strong\u003e\u003c/summary\u003e\n\nCline uses a JSON configuration file to manage MCP servers. To integrate the provided MCP server configuration:\n\n1. Open Cline and click on the **MCP Servers** icon in the top navigation bar.\n\n2. Select the **Installed** tab, then click **Advanced MCP Settings**.\n\n3. In the `cline_mcp_settings.json` file, add the following configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"claude-context\": {\n      \"command\": \"npx\",\n      \"args\": [\"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"MILVUS_ADDRESS\": \"your-zilliz-cloud-public-endpoint\",\n        \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n      }\n    }\n  }\n}\n```\n\n4. Save the file.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eAugment\u003c/strong\u003e\u003c/summary\u003e\n\nTo configure Claude Context MCP in Augment Code, you can use either the graphical interface or manual configuration.\n\n#### **A. Using the Augment Code UI**\n\n1. Click the hamburger menu.\n\n2. Select **Settings**.\n\n3. Navigate to the **Tools** section.\n\n4. Click the **+ Add MCP** button.\n\n5. Enter the following command:\n\n   ```\n   npx @pleaseai/context-please-mcp@latest\n   ```\n\n6. Name the MCP: **Context Please**.\n\n7. Click the **Add** button.\n\n------\n\n#### **B. Manual Configuration**\n\n1. Press Cmd/Ctrl Shift P or go to the hamburger menu in the Augment panel\n2. Select Edit Settings\n3. Under Advanced, click Edit in settings.json\n4. Add the server configuration to the `mcpServers` array in the `augment.advanced` object\n\n```json\n\"augment.advanced\": {\n  \"mcpServers\": [\n    {\n      \"name\": \"context-please\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"MILVUS_ADDRESS\": \"your-zilliz-cloud-public-endpoint\",\n        \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n      }\n    }\n  ]\n}\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eRoo Code\u003c/strong\u003e\u003c/summary\u003e\n\nRoo Code utilizes a JSON configuration file for MCP servers:\n\n1. Open Roo Code and navigate to **Settings → MCP Servers → Edit Global Config**.\n\n2. In the `mcp_settings.json` file, add the following configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"claude-context\": {\n      \"command\": \"npx\",\n      \"args\": [\"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"MILVUS_ADDRESS\": \"your-zilliz-cloud-public-endpoint\",\n        \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n      }\n    }\n  }\n}\n```\n\n3. Save the file to activate the server.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eZencoder\u003c/strong\u003e\u003c/summary\u003e\n\nZencoder offers support for MCP tools and servers in both its JetBrains and VS Code plugin versions.\n\n1. Go to the Zencoder menu (...)\n2. From the dropdown menu, select `Tools`\n3. Click on the `Add Custom MCP`\n4. Add the name (i.e. `Context Please`) and server configuration from below, and make sure to hit the `Install` button\n\n```json\n{\n    \"command\": \"npx\",\n    \"args\": [\"@pleaseai/context-please-mcp@latest\"],\n    \"env\": {\n      \"OPENAI_API_KEY\": \"your-openai-api-key\",\n      \"MILVUS_ADDRESS\": \"your-zilliz-cloud-public-endpoint\",\n      \"MILVUS_TOKEN\": \"your-zilliz-cloud-api-key\"\n    }\n}\n\n```\n\n5. Save the server by hitting the `Install` button.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eLangChain/LangGraph\u003c/strong\u003e\u003c/summary\u003e\n\nFor LangChain/LangGraph integration examples, see [this example](https://github.com/zilliztech/claude-context/blob/643796a0d30e706a2a0dff3d55621c9b5d831807/evaluation/retrieval/custom.py#L88).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eOther MCP Clients\u003c/strong\u003e\u003c/summary\u003e\n\nThe server uses stdio transport and follows the standard MCP protocol. It can be integrated with any MCP-compatible client by running:\n\n```bash\nnpx @pleaseai/context-please-mcp@latest\n```\n\n\u003c/details\u003e\n\n---\n\n### Usage in Your Codebase\n\n1. **Open Claude Code**\n\n   ```\n   cd your-project-directory\n   claude\n   ```\n\n2. **Index your codebase**:\n\n   ```\n   Index this codebase\n   ```\n\n3. **Check indexing status**:\n\n   ```\n   Check the indexing status\n   ```\n\n4. **Start searching**:\n\n   ```\n   Find functions that handle user authentication\n   ```\n\n🎉 **That's it!** You now have semantic code search in Claude Code.\n\n---\n\n### Environment Variables Configuration\n\nFor more detailed MCP environment variable configuration, see our [Environment Variables Guide](docs/getting-started/environment-variables.md).\n\n### Using FAISS for Local-Only Deployments\n\n**Context Please** now supports FAISS as a zero-configuration, local-only vector database option! This is perfect for:\n\n- 🚀 **Quick Start**: No external database setup required\n- 💻 **Local Development**: All data stays on your machine\n- 💰 **Zero Cost**: No cloud services or infrastructure costs\n- 📦 **Small-to-Medium Codebases**: Ideal for personal projects and teams\n\n#### Quick Start with FAISS\n\nSimply omit the Milvus/Qdrant configuration, and Context Please will automatically use FAISS:\n\n```bash\nclaude mcp add context-please \\\n  -e OPENAI_API_KEY=sk-your-openai-api-key \\\n  -- npx @pleaseai/context-please-mcp@latest\n```\n\nThat's it! Your code will be indexed to `~/.context/faiss-indexes/` automatically.\n\n#### Advanced FAISS Configuration\n\nYou can customize the storage directory:\n\n```bash\nclaude mcp add context-please \\\n  -e OPENAI_API_KEY=sk-your-openai-api-key \\\n  -e FAISS_STORAGE_DIR=/path/to/your/indexes \\\n  -- npx @pleaseai/context-please-mcp@latest\n```\n\nOr explicitly specify FAISS as the vector database:\n\n```json\n{\n  \"mcpServers\": {\n    \"context-please\": {\n      \"command\": \"npx\",\n      \"args\": [\"@pleaseai/context-please-mcp@latest\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"your-openai-api-key\",\n        \"VECTOR_DB_TYPE\": \"faiss-local\",\n        \"FAISS_STORAGE_DIR\": \"~/.context/faiss-indexes\"\n      }\n    }\n  }\n}\n```\n\n#### FAISS Features\n\n- ✅ **Hybrid Search**: Combines dense (semantic) + sparse (BM25) vectors\n- ✅ **File-based Persistence**: Indexes saved as `.index` files\n- ✅ **Auto-selection**: Defaults to FAISS when no external DB configured\n- ✅ **Same Interface**: Compatible with all existing tools and APIs\n\n#### Limitations\n\n- ⚠️ **Memory**: Entire index loads into RAM (suitable for ~100K files)\n- ⚠️ **Concurrency**: Single-process file access\n- ⚠️ **Scalability**: For larger codebases, consider Milvus or Qdrant\n\nFor production deployments or large codebases (\u003e100K files), we recommend using [Milvus](https://milvus.io) or [Qdrant](https://qdrant.tech).\n\n### Using Different Embedding Models\n\nTo configure custom embedding models (e.g., `text-embedding-3-large` for OpenAI, `voyage-code-3` for VoyageAI), see the [MCP Configuration Examples](packages/mcp/README.md#embedding-provider-configuration) for detailed setup instructions for each provider.\n\n### File Inclusion \u0026 Exclusion Rules\n\nFor detailed explanation of file inclusion and exclusion rules, and how to customize them, see our [File Inclusion \u0026 Exclusion Rules](docs/dive-deep/file-inclusion-rules.md).\n\n### Available Tools\n\n#### 1. `index_codebase`\n\nIndex a codebase directory for hybrid search (BM25 + dense vector).\n\n#### 2. `search_code`\n\nSearch the indexed codebase using natural language queries with hybrid search (BM25 + dense vector).\n\n#### 3. `clear_index`\n\nClear the search index for a specific codebase.\n\n#### 4. `get_indexing_status`\n\nGet the current indexing status of a codebase. Shows progress percentage for actively indexing codebases and completion status for indexed codebases.\n\n---\n\n## 📊 Evaluation\n\nOur controlled evaluation demonstrates that Claude Context MCP achieves ~40% token reduction under the condition of equivalent retrieval quality. This translates to significant cost and time savings in production environments. This also means that, under the constraint of limited token context length, using Claude Context yields better retrieval and answer results.\n\n![MCP Efficiency Analysis](assets/mcp_efficiency_analysis_chart.png)\n\nFor detailed evaluation methodology and results, see the [evaluation directory](evaluation/).\n\n---\n\n## 🏗️ Architecture\n\n![](assets/Architecture.png)\n\n### 🔧 Implementation Details\n\n- 🔍 **Hybrid Code Search**: Ask questions like *\"find functions that handle user authentication\"* and get relevant, context-rich code instantly using advanced hybrid search (BM25 + dense vector).\n- 🧠 **Context-Aware**: Discover large codebase, understand how different parts of your codebase relate, even across millions of lines of code.\n- ⚡ **Incremental Indexing**: Efficiently re-index only changed files using Merkle trees.\n- 🧩 **Intelligent Code Chunking**: Analyze code in Abstract Syntax Trees (AST) for chunking.\n- 🗄️ **Scalable**: Integrates with vector databases (Milvus, Zilliz Cloud, Qdrant) for scalable vector search, no matter how large your codebase is.\n- 🛠️ **Customizable**: Configure file extensions, ignore patterns, and embedding models.\n\n### Core Components\n\nContext Please is a monorepo containing main packages:\n\n- **`@pleaseai/context-please-core`**: Core indexing engine with embedding and vector database integration\n- **`@pleaseai/context-please-mcp`**: Model Context Protocol server for AI agent integration\n- **VSCode Extension**: TBD (To Be Determined)\n- **Chrome Extension**: TBD (To Be Determined)\n\n### Supported Technologies\n\n- **Embedding Providers**: [OpenAI](https://openai.com), [VoyageAI](https://voyageai.com), [Ollama](https://ollama.ai), [Gemini](https://gemini.google.com)\n- **Vector Databases**: [Milvus](https://milvus.io), [Zilliz Cloud](https://zilliz.com/cloud)(fully managed vector database as a service), [Qdrant](https://qdrant.tech)\n- **Code Splitters**: AST-based splitter (with automatic fallback), LangChain character-based splitter\n- **Languages**: TypeScript, JavaScript, Python, Java, C++, C#, Go, Rust, PHP, Ruby, Swift, Kotlin, Scala, Markdown\n- **Development Tools**: VSCode, Model Context Protocol\n\n---\n\n## 📦 Other Ways to Use Claude Context\n\nWhile MCP is the recommended way to use Claude Context with AI assistants, you can also use it directly or through the VSCode extension.\n\n### Build Applications with Core Package\n\nThe `@pleaseai/context-please-core` package provides the fundamental functionality for code indexing and semantic search.\n\n```typescript\nimport { Context, MilvusVectorDatabase, OpenAIEmbedding } from '@pleaseai/context-please-core';\n\n// Initialize embedding provider\nconst embedding = new OpenAIEmbedding({\n    apiKey: process.env.OPENAI_API_KEY || 'your-openai-api-key',\n    model: 'text-embedding-3-small'\n});\n\n// Initialize vector database\nconst vectorDatabase = new MilvusVectorDatabase({\n    address: process.env.MILVUS_ADDRESS || 'your-zilliz-cloud-public-endpoint',\n    token: process.env.MILVUS_TOKEN || 'your-zilliz-cloud-api-key'\n});\n\n// Create context instance\nconst context = new Context({\n    embedding,\n    vectorDatabase\n});\n\n// Index your codebase with progress tracking\nconst stats = await context.indexCodebase('./your-project', (progress) =\u003e {\n    console.log(`${progress.phase} - ${progress.percentage}%`);\n});\nconsole.log(`Indexed ${stats.indexedFiles} files, ${stats.totalChunks} chunks`);\n\n// Perform semantic search\nconst results = await context.semanticSearch('./your-project', 'vector database operations', 5);\nresults.forEach(result =\u003e {\n    console.log(`File: ${result.relativePath}:${result.startLine}-${result.endLine}`);\n    console.log(`Score: ${(result.score * 100).toFixed(2)}%`);\n    console.log(`Content: ${result.content.substring(0, 100)}...`);\n});\n```\n\n### VSCode Extension\n\n\u003e **Note:** VSCode extension is currently TBD (To Be Determined) and not yet available in this fork. Please use the original [claude-context VSCode extension](https://marketplace.visualstudio.com/items?itemName=zilliz.semanticcodesearch) for now.\n---\n\n## 🛠️ Development\n\n### Setup Development Environment\n\n#### Prerequisites\n\n- Node.js 20.x or 22.x\n- pnpm (recommended package manager)\n\n#### Cross-Platform Setup\n\n```bash\n# Clone repository\ngit clone https://github.com/pleaseai/context-please.git\ncd context-please\n\n# Install dependencies\npnpm install\n\n# Build all packages\npnpm build\n\n# Start development mode\npnpm dev\n```\n\n#### Windows-Specific Setup\n\nOn Windows, ensure you have:\n\n- **Git for Windows** with proper line ending configuration\n- **Node.js** installed via the official installer or package manager\n- **pnpm** installed globally: `npm install -g pnpm`\n\n```powershell\n# Windows PowerShell/Command Prompt\ngit clone https://github.com/pleaseai/context-please.git\ncd context-please\n\n# Configure git line endings (recommended)\ngit config core.autocrlf false\n\n# Install dependencies\npnpm install\n\n# Build all packages (uses cross-platform scripts)\npnpm build\n\n# Start development mode\npnpm dev\n```\n\n### Building\n\n```bash\n# Build all packages (cross-platform)\npnpm build\n\n# Build specific package\npnpm build:core\npnpm build:vscode\npnpm build:mcp\n\n# Performance benchmarking\npnpm benchmark\n```\n\n#### Windows Build Notes\n\n- All build scripts are cross-platform compatible using rimraf\n- Build caching is enabled for faster subsequent builds\n- Use PowerShell or Command Prompt - both work equally well\n\n### Testing\n\nContext Please includes comprehensive integration tests for both the core indexing engine and MCP server.\n\n```bash\n# Run all tests (unit + integration)\npnpm test\n\n# Run only integration tests (123 tests)\npnpm test:integration\n\n# Run tests for specific package\ncd packages/core \u0026\u0026 pnpm test          # All core tests\ncd packages/core \u0026\u0026 pnpm test:integration  # Core integration tests only\ncd packages/mcp \u0026\u0026 pnpm test:integration   # MCP integration tests only\n\n# Run specific test file\npnpm test packages/core/test/integration/indexing-workflow.integration.test.ts\n```\n\n**Test Coverage**:\n- **Core integration tests**: 93 tests (100% passing)\n  - Indexing workflow (15 tests): Basic indexing operations\n  - Search workflow (18 tests): Semantic search and ranking\n  - Lifecycle (17 tests): Collection management\n  - File synchronization (24 tests): Merkle DAG-based change detection\n  - Incremental reindex (19 tests): File add/modify/delete operations\n- **MCP integration tests**: 30 tests (100% passing)\n  - Tool handlers: index_codebase, search_code, clear_index, get_indexing_status\n\nFor detailed testing guidelines, see [docs/develop/TESTING.md](docs/develop/TESTING.md).\n\n### Running Examples\n\n```bash\n# Development with file watching\ncd examples/basic-usage\npnpm dev\n```\n\n---\n\n## 📖 Examples\n\nCheck the `/examples` directory for complete usage examples:\n\n- **Basic Usage**: Simple indexing and search example\n\n---\n\n## ❓ FAQ\n\n**Common Questions:**\n\n- **[What files does Claude Context decide to embed?](docs/troubleshooting/faq.md#q-what-files-does-claude-context-decide-to-embed)**\n- **[Can I use a fully local deployment setup?](docs/troubleshooting/faq.md#q-can-i-use-a-fully-local-deployment-setup)**\n- **[Does it support multiple projects / codebases?](docs/troubleshooting/faq.md#q-does-it-support-multiple-projects--codebases)**\n- **[How does Claude Context compare to other coding tools?](docs/troubleshooting/faq.md#q-how-does-claude-context-compare-to-other-coding-tools-like-serena-context7-or-deepwiki)**\n\n❓ For detailed answers and more troubleshooting tips, see our [FAQ Guide](docs/troubleshooting/faq.md).\n\n🔧 **Encountering issues?** Visit our [Troubleshooting Guide](docs/troubleshooting/troubleshooting-guide.md) for step-by-step solutions.\n\n📚 **Need more help?** Check out our [complete documentation](docs/) for detailed guides and troubleshooting tips.\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details on how to get started.\n\n**Package-specific contributing guides:**\n\n- [Core Package Contributing](packages/core/CONTRIBUTING.md)\n- [MCP Server Contributing](packages/mcp/CONTRIBUTING.md)  \n- [VSCode Extension Contributing](packages/vscode-extension/CONTRIBUTING.md)\n\n---\n\n## 🗺️ Roadmap\n\n- [x] AST-based code analysis for improved understanding\n- [x] Support for additional embedding providers\n- [ ] Agent-based interactive search mode\n- [x] Enhanced code chunking strategies\n- [ ] Search result ranking optimization\n- [ ] Robust Chrome Extension\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 🔗 Links\n\n- [GitHub Repository](https://github.com/pleaseai/context-please)\n- [Original Project (claude-context)](https://github.com/zilliztech/claude-context)\n- [npm - Core Package](https://www.npmjs.com/package/@pleaseai/context-please-core)\n- [npm - MCP Server](https://www.npmjs.com/package/@pleaseai/context-please-mcp)\n- [Milvus Documentation](https://milvus.io/docs)\n- [Zilliz Cloud](https://zilliz.com/cloud)\n- [Qdrant Documentation](https://qdrant.tech/documentation/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpleaseai%2Fcontext-please","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpleaseai%2Fcontext-please","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpleaseai%2Fcontext-please/lists"}