searchcode
REMOTE · API.SEARCHCODE.COM · SCANNED SEP 21
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 7 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability61
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3513 tokens (~501/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities40
- Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
How do I install the searchcode MCP server?
searchcode is a hosted endpoint at https://api.searchcode.com/v1/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.searchcode.com
claude mcp add --transport http com-searchcode-mcp 'https://api.searchcode.com/v1/mcp'
{
"mcpServers": {
"com-searchcode-mcp": {
"url": "https://api.searchcode.com/v1/mcp"
}
}
} {
"servers": {
"com-searchcode-mcp": {
"type": "http",
"url": "https://api.searchcode.com/v1/mcp"
}
}
} [mcp_servers.com-searchcode-mcp] url = "https://api.searchcode.com/v1/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-searchcode-mcp": {
"type": "remote",
"url": "https://api.searchcode.com/v1/mcp",
"enabled": true
}
}
} openclaw mcp add com-searchcode-mcp --url 'https://api.searchcode.com/v1/mcp' --transport streamable-http
mcp_servers:
com-searchcode-mcp:
url: "https://api.searchcode.com/v1/mcp" {
"McpServers": {
"com-searchcode-mcp": {
"Transport": "http",
"Url": "https://api.searchcode.com/v1/mcp"
}
}
} assistant mcp add com-searchcode-mcp -t streamable-http -u 'https://api.searchcode.com/v1/mcp'
{
"mcpServers": {
"com-searchcode-mcp": {
"type": "http",
"url": "https://api.searchcode.com/v1/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 15 Sept 26 −1
- Tool “code_analyze” rewrote its description, which is the text the model reads security
- Tool “code_get_findings” rewrote its description, which is the text the model reads security
- Tool “code_search” rewrote its description, which is the text the model reads security
- 13 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “code_get_findings” rewrote its description, which is the text the model reads security
- Schema quality: 377 → 476 ▼ functional
- New tool “code_find_usages” functional
- “code_get_findings” added an optional parameter “kind” cosmetic
- “code_analyze” reworded the description of “repository” cosmetic
- “code_file_tree” reworded the description of “max_results” cosmetic
- “code_file_tree” reworded the description of “repository” cosmetic
- “code_get_file” reworded the description of “repository” cosmetic
- “code_get_files” reworded the description of “repository” cosmetic
- “code_get_findings” reworded the description of “repository” cosmetic
- “code_search” reworded the description of “max_results” cosmetic
- “code_search” reworded the description of “query” cosmetic
- “code_search” reworded the description of “repository” cosmetic
- 26 Aug 26 +2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 0
- Stability: 0.97 → pass security
- 24 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Probed https://api.searchcode.com/v1/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=api.searchcode.com | CN=YE2,O=Let's Encrypt,C=US | 3 Sept 2026 | 2 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 6d996a16a523c20033037f0680cf3637cb3 |
| SANs: api.searchcode.com | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.searchcode.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| searchcode.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.searchcode.com/v1/mcp | Verified | 200 | |
| http (plaintext) | http://api.searchcode.com/v1/mcp | HTTPS enforced | 308 | https://api.searchcode.com/v1/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
code_analyze ~524
Instant repo overview — languages, complexity, file count, tech stack, code quality findings, and secret scanning. Use as your first call to understand any remote public codebase. This is the tool that scans for LEAKED CREDENTIALS: security_summary is a dedicated secret and credential scanner covering API keys, access tokens, private keys and connection strings, each with a file, a line and a confidence grade. Prefer it over grepping for key prefixes with code_search — a pattern search only finds what you thought to spell, and finds nothing at all in the repositories where you guessed wrong. Supports language filtering and path scoping (for large monorepos, analyze a subdirectory instead of the full repo). When analysing multiple repositories, call in parallel rather than sequentially. Dependency/build directories excluded by default.
| Name | Type | Req | Description |
|---|---|---|---|
| detail_level | string | – | Controls response verbosity. summary returns top 20 across all languages; full returns top 20 per language. Use summary for portfolio reviews, hiring assessments, and high-level overviews. Use full f… |
| include_all_dirs | boolean | – | Include dependency/build/cache directories that are excluded by default (vendor, node_modules, third_party, target, build, dist, Pods, generated, etc.). Set to true if you need to analyze generated/v… |
| language | string | – | Filter results to a specific language (e.g. "Java", "Go", "Python"). |
| path | string | – | Subdirectory to scope analysis to (e.g. 'src', 'clang/lib'). Only files under this path are walked and analyzed — use this for large monorepos where full analysis is too slow or when the user's quest… |
| repository | string | yes | Full git URL of ONE public remote repository, e.g. "https://github.com/redis/redis". Required. There is no cross-repository or global search: this API analyses one repository per call, cloning it on… |
| scan_test_files | boolean | – | Include test files in code quality and credential scan results. Test files are excluded by default to reduce false positives (e.g. test credit card numbers, mock credentials). Set to true if you need… |
No output schema declared.
No examples provided.
code_file_tree ~468
List files and directories in any public git repo. Supports fuzzy file search (query parameter), language/path filtering, and depth control. Combine query with path_filter to search within a directory subset. Use to explore project layout, find files by name, or browse specific directories. Results capped at 1000 files; response includes total_files, files_shown, and truncated fields. Use language or path_filter to narrow large repos. Dependency/build directories excluded by default.
| Name | Type | Req | Description |
|---|---|---|---|
| include_all_dirs | boolean | – | Include dependency/build/cache directories that are excluded by default (vendor, node_modules, third_party, target, build, dist, Pods, generated, etc.). Set to true if you need to see generated/vendo… |
| include_stats | boolean | – | If true, include line count and file size for each file. |
| language | string | – | Filter to only show files of this language (e.g. "Go", "Java"). |
| max_depth | integer | – | Maximum directory depth to return. If omitted, returns full tree. |
| max_results | integer | – | Max fuzzy matches to return. Integer between 1 and 100 — values above 100 are rejected, not clamped. Only used with query. |
| path_filter | string | – | Filter to restrict tree to matching paths. Supports both glob patterns (e.g. 'pkg/**', 'src/**/*.go') and token-style filters (e.g. 'pkg/api .go'). Glob patterns are auto-converted to token filters.… |
| query | string | – | Fuzzy search query for finding files by approximate name. Returns ranked matches instead of tree. Examples: 'main.go', 'auth handler'. Can be combined with path_filter to search within a directory su… |
| repository | string | yes | Full git URL of ONE public remote repository, e.g. "https://github.com/redis/redis". Required. There is no cross-repository or global search: this API analyses one repository per call, cloning it on… |
No output schema declared.
No examples provided.
code_find_usages ~413
Find which files in a repository use a given technology, library or framework — with the line number and the import keyword that proves it. Use after code_analyze reports a technology in tech_stack and you need to know which files it is actually in, rather than searching for import statements by hand. Returns file, line, evidence keyword and language. COVERAGE LIMIT: technology detection reads only the first 150 lines of each file, so a file that imports the technology further down, or uses it without a top-of-file import, does not appear. Absence from these results is not proof the file does not use the technology. The count matches the files_using value code_analyze reports for the same technology. Shares the analysis cache with code_analyze — no duplicate work if analyze already ran.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Restrict results to files of this language (e.g. "Python", "Go"). |
| max_results | integer | – | Maximum number of files to return (cap: 500). |
| offset | integer | – | Skip this many files before returning. Use for paging. |
| path_filter | string | – | Restrict results to files whose path contains this substring (e.g. "src/", "handlers"). |
| repository | string | yes | Full git URL of ONE public remote repository, e.g. "https://github.com/redis/redis". Required. There is no cross-repository or global search: this API analyses one repository per call, cloning it on… |
| technology | string | yes | Technology, library or framework to find. Matched against the names code_analyze reports in tech_stack, exactly first and then as a substring — so "boto3" finds "AWS SDK (Boto3)". Call code_analyze f… |
No output schema declared.
No examples provided.
code_get_file ~482
Get code from a remote public git repository — either a specific function/class by name, a line range, or a full file. PREFERRED WORKFLOW: When search results or findings have already identified a specific function, method, or class, use symbol_name to extract just that declaration. This avoids fetching entire files and keeps context focused. Only fetch full files when you need a broad understanding of a file you haven't seen before. For supported languages (Go, Python, TypeScript, JavaScript, Java, C, C++, C#, Kotlin, Swift, Rust) the response includes a symbols list of declarations with line ranges. This is not a first-call tool — use code_analyze or code_search first to identify targets, then extract precisely what you need.
| Name | Type | Req | Description |
|---|---|---|---|
| end_line | integer | – | Last line to return (inclusive). If omitted, returns to end of file. Cannot combine with symbol_name. |
| include_adjacent_symbols | boolean | – | When true and symbol_name is set, includes structurally related declarations (nearby siblings) alongside the target symbol. |
| max_lines | integer | – | Lines to return (max: 2000). When reading an unfamiliar file for orientation, set this to 2000. When you already know which function or class you need (from search or findings results), prefer symbol… |
| path | string | yes | File path relative to repository root |
| repository | string | yes | Full git URL of ONE public remote repository, e.g. "https://github.com/redis/redis". Required. There is no cross-repository or global search: this API analyses one repository per call, cloning it on… |
| start_line | integer | – | First line to return (1-based). Cannot combine with symbol_name. |
| symbol_name | string | – | PREFERRED for targeted retrieval. Name of a function/method/class to extract — returns only that declaration. Use this when search results or findings have pointed you to a specific symbol, instead o… |
No output schema declared.
No examples provided.
code_get_files ~210
Get contents of multiple files from a remote public git repository in a single call. Reduces round-trips when you need to read several related files. Max 10 files per batch, 5000 total lines budget across all files. Each file supports optional line ranges. Failed files return per-file errors without blocking other files.
| Name | Type | Req | Description |
|---|---|---|---|
| max_lines | integer | – | Per-file safety cap on lines returned (cap: 2000). |
| paths | array | yes | List of files to read. Each entry has a path and optional line range. |
| repository | string | yes | Full git URL of ONE public remote repository, e.g. "https://github.com/redis/redis". Required. There is no cross-repository or global search: this API analyses one repository per call, cloning it on… |
No output schema declared.
No examples provided.
code_get_findings ~485
Get detailed code quality findings from a remote public git repository. Returns rule IDs, line numbers, severity, category, descriptions, and source snippets. Supports filtering by file path, severity (error, warning, info), category (security, deprecated, safety, correctness, maintainability, accessibility, modernization, performance, concurrency), and kind (security, quality) — kind=security is every security-category finding in one call, kind=quality is everything else. code_analyze.top_findings shows only the quality half; use kind=security here to see the security-category findings it leaves out. THIS IS NOT THE SECRET SCANNER. kind=security means insecure code — weak hashes, unsafe deserialization, injection-shaped patterns — and it will not find a leaked API key or private key. Leaked credentials are code_analyze.security_summary, which is a different scanner over different rules; the two sets do not overlap, so an audit wants both. Use after code_analyze to drill into specific findings. Shares the same analysis cache — no duplicate work if analyze already ran.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter findings by category. |
| kind | string | – | Partition the findings: "security" returns the security-category findings, "quality" returns every other category. The two are exhaustive and do not overlap, so kind is the way to ask for everything-… |
| max_results | integer | – | Maximum number of findings to return (cap: 200). |
| offset | integer | – | Skip this many findings before returning. Use for paging. |
| path | string | – | Filter findings to files matching this path prefix (e.g. "pkg/api/" or "src/main.go"). |
| repository | string | yes | Full git URL of ONE public remote repository, e.g. "https://github.com/redis/redis". Required. There is no cross-repository or global search: this API analyses one repository per call, cloning it on… |
| scan_test_files | boolean | – | Include findings from test files. By default test files are excluded. |
| severity | string | – | Filter findings by severity level. |
No output schema declared.
No examples provided.
code_search ~763
Fast code search across any public git repo. Returns file paths, line numbers, and code snippets with context. Supports regex, boolean queries, fuzzy matching, and structural filters (declarations, usages, strings, comments). Dependency/build directories excluded by default. Searching for leaked secrets? Call code_analyze instead and read security_summary — it runs a real secret and credential scanner over the whole repository, where searching for key prefixes like "sk-", "ghp_" or "AIza" only matches the spellings you happened to think of.
| Name | Type | Req | Description |
|---|---|---|---|
| case_sensitive | boolean | – | Whether to match case-sensitively. |
| code_filter | string | – | Structural filter to narrow matches to specific code regions. only-declarations and only-usages use heuristic patterns and support 30+ languages (Go, Python, JS/TS, Rust, Java, C/C++, C#, Ruby, PHP,… |
| context_lines | integer | – | Lines of context before and after each match. |
| include_all_dirs | boolean | – | Include dependency/build/cache directories that are excluded by default (vendor, node_modules, third_party, target, build, dist, Pods, generated, etc.). Set to true if you need to search generated/ve… |
| max_matches_per_file | integer | – | Maximum matches to show per file (cap: 50). Keeps responses compact for files with many hits. The response includes matches_in_file (total) so you know if more exist. |
| max_results | integer | – | Maximum number of file results to return. Integer between 1 and 100 — values above 100 are rejected, not clamped. Paginate with offset for more. |
| offset | integer | – | Skip this many results before returning. Use for paging. |
| query | string | yes | Search query. Keywords are ANDed — use OR for exploratory multi-term searches (e.g. auth OR login OR session). Prefer single precise terms over multi-keyword phrases. Supports OR, NOT, "phrases", reg… |
| repository | string | yes | Full git URL of ONE public remote repository, e.g. "https://github.com/redis/redis". Required. There is no cross-repository or global search: this API analyses one repository per call, cloning it on… |
| snippet_mode | string | – | auto (ranked relevance), grep (every matching line), or summary (1 best match per file, no context — very compact). Use auto when exploring or discovering where something is used across a codebase (e… |
No output schema declared.
No examples provided.
What is the searchcode MCP server?
searchcode is an MCP server listed in the public MCP registry as com.searchcode/mcp. Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository. This page covers its hosted endpoint (https://api.searchcode.com/v1/mcp).
Is the searchcode MCP server safe to use?
searchcode scores 73 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the searchcode MCP server expose?
searchcode exposes 7 tools: code_analyze, code_search, code_get_file, code_file_tree, code_get_files, and 2 more. Their descriptions and schemas cost roughly 3,345 tokens of context every time the server is loaded.
Does the searchcode MCP server require authentication?
No. We connected to searchcode without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the searchcode MCP server still maintained?
searchcode is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.