Token导航 LogoToken导航TokenDH.com
Android Codesearch MCP logo
开发工具stdio官方级别未说明来源级核验

Android Codesearch MCP

MCP Server

一个MCP服务器,允许AI助手远程搜索和浏览Android开源项目(AOSP)源代码,无需本地检出。

工具数

5

提示词数

0

GitHub Stars

2

资源数

0
代码搜索远程访问PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

JiaweiHan88

提供方

JiaweiHan88

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run androidcodesearchmcp

详细介绍

安卓代码搜索MCP服务器

MCP(模型上下文协议) 允许AI助手搜索和浏览 安卓开源项目(AOSP) 远程源代码——无需本地签出。

它连接到与电源相同的后端 cs.android.com 并通过MCP stdio传输公开了五个工具。

建筑

┌──────────────┐  stdio   ┌──────────────────────┐  HTTPS  ┌─────────────────────────────────┐
│  MCP Client  │ ◄──────► │  androidcodesearchmcp│ ──────► │ grimoireoss-pa.clients6.google  │
│  (Claude,    │  JSON-RPC│  (this server)        │         │   /batch  (search, suggest)     │
│   VSCode…)   │          │                       │ ──────► │   /$rpc/… (file content, gRPC)  │
└──────────────┘          │  Python / httpx       │         └─────────────────────────────────┘
                          │                       │  HTTPS  ┌─────────────────────────────────┐
                          │                       │ ──────► │ android.googlesource.com        │
                          └──────────────────────┘         │   Gitiles JSON API (dir browse) │
                                                           └─────────────────────────────────┘

后端API

能力端点协议
代码搜索grimoireoss-pa.clients6.google.com/batch/v1/contents/search多部分包装的JSON POST
符号建议相同 /batch/v1/contents/suggest多部分包装的JSON POST
文件内容grimoireoss-pa.clients6.google.com/$rpc/devtools.grimoire.FileService/GetContentsStreaminggRPC web(JSON+protobuf)
目录列表android.googlesource.com/{repo}/+/refs/heads/{branch}/{path}/Gitiles JSON(?format=JSON)

所有端点都是公共的,不需要身份验证。服务器使用嵌入cs.android.com前端的相同API密钥。

______________________________________________________________________

工具

1. search_android_code

在所有AOSP存储库中进行全文和正则表达式搜索。

参数:

名称类型必填默认描述
query字符串--搜索查询(请参阅下面的运算符)
projectenum"android"其中之一: android, androidx, android-studio, android-llvm
repositorystringno--仅限于特定的仓库,例如。 platform/frameworks/base
branchstring"master"要搜索的分支或引用
page_size整数20每页结果(最多50个)
page_tokenstring""来自先前响应的分页标记
context_lines整数2围绕每个匹配的源上下文行

搜索运算符:

运算符示例它的作用
*(无)*ActivityThread普通关键字/正则表达式搜索
file:file:ActivityManager.java将匹配限制为文件名
class:class:Activity匹配类定义
function:function:dispatchTouchEvent匹配函数/方法名称
package:package:android.app匹配包声明

操作员可以组合: class:Activity file:Activity.java

退货: 匹配文件的列表,每个文件都有代码片段,显示匹配的行及其周围的上下文,以及一个直接的cs.android.com URL。如果存在更多结果 page_token 包含用于分页。

它在内部是如何工作的:

  1. 使用以下命令构建JSON正文 queryString, searchOptions (页面大小、上下文行、存储库范围),以及 snippetOptions
  2. 将其包装在多部分/混合批处理信封中(模仿cs.android.com前端)
  3. POST到 grimoireoss-pa.clients6.google.com/batch/v1/contents/search
  4. 解析多部分响应,提取包含以下内容的内部JSON searchResults[] 包含文件规格和代码片段

______________________________________________________________________

2. get_file_content

检索单个文件的完整源代码。

参数:

名称类型必填默认描述
path字符串--存储库中的文件路径(例如。 core/java/android/app/Activity.java)
projectenum"android"项目ID
repositorystring"platform/superproject"存储库名称
branchstring"master"分支机构或参考

退货: 文件元数据(大小、MIME类型)后面是用语法突出显示的代码块包裹的完整源代码。

它在内部是如何工作的:

  1. 构建一个包含存储库密钥、分支和文件路径的位置JSON数组(protobuf样式)
  2. 到gRPC web端点的POST /$rpc/devtools.grimoire.FileService/GetContentsStreaming
  3. 响应是一个深度嵌套的JSON数组;解析器递归地遍历它以找到:

- 源内容(第一个包含换行符的长字符串) - MIME类型(以开头的字符串 text/) - 文件大小(短数字字符串)

______________________________________________________________________

3. suggest_symbols

类名、方法名和文件路径的自动补全。有助于在搜索或获取之前发现符号的确切名称或位置。

参数:

名称类型必填默认描述
query字符串--要填写的部分名称(例如。 ActivityThr)
max_results整数10返回的最大建议数

退货: 一份建议清单,每项建议都包括:

  • 符号标题和类型(类、方法等)
  • 定义符号的文件路径和行号
  • 匹配的源线

它在内部是如何工作的:

  1. 将部分查询发送到 /v1/contents/suggest 通过批量信封
  2. 作语法分析 suggestions[] 从响应中提取文件规格、行号和匹配文本

______________________________________________________________________

4. browse_directory

列出给定路径下的文件和子目录。使用 Gitiles JSON APIandroid.googlesource.com (与Grimoire搜索后端分开)。

参数:

名称类型必填默认描述
pathstring"" (root)列表的目录路径
branchstring"master"分行名称
repositorystring"platform/superproject"要浏览的存储库

退货: 按字母顺序排列的条目列表(先是目录,然后是文件)。每个条目都显示其名称、类型图标和完整路径。子模块用链接图标标记。

重要提示: AOSP超级项目包含许多 子模块 (例如。 frameworks/base).这些显示为类型 submodule 在目录列表中。浏览 *里面* 子模块,您必须明确指定其存储库:

# Lists the superproject root — frameworks/base shows as a submodule link
browse_directory(path="frameworks")

# To browse inside frameworks/base, specify the repo:
browse_directory(repository="platform/frameworks/base", path="core/java/android/app")

它在内部是如何工作的:

  1. 构造一个Gitiles URL: https://android.googlesource.com/{repo}/+/refs/heads/{branch}/{path}/
  2. 附加 ?format=JSON 请求JSON而不是HTML
  3. 剥去 )]}' 响应中的XSSI前缀
  4. 解析条目,将每个条目分类为 dir (树), file (blob),或 submodule (承诺)

______________________________________________________________________

5. list_projects

返回可搜索的可用Android源项目列表。

参数: 没有。

退货:

项目ID名称默认存储库默认分支
android安卓系统(AOSP)platform/superprojectmaster
androidxAndroidX/Jetpackplatform/frameworks/supportandroidx-main
android-studio安卓工作室platform/tools/adt/ideamirror-goog-studio-main
android-llvm安卓LLVMtoolchain/llvm-projectmain

______________________________________________________________________

安装

需要Python 3.11+和 紫外线.

# Clone and install
cd androidcodesearchmcp
uv sync

跑步

# Via the installed entry point
.venv/Scripts/androidcodesearchmcp.exe      # Windows
.venv/bin/androidcodesearchmcp              # Linux/macOS

# Or via uv
uv run androidcodesearchmcp

# Or as a Python module
uv run python -m androidcodesearchmcp

服务器通过以下方式进行通信 标准 (stdin/stdout JSON-RPC),因此它看起来会挂起——这是正常的。它正在等待MCP客户端连接。

MCP客户端配置

克劳德代码(VS代码扩展/CLI)

增添 ~/.claude.json:

Linux/macOS:

{
  "mcpServers": {
    "androidcodesearch": {
      "type": "stdio",
      "command": "/absolute/path/to/.venv/bin/androidcodesearchmcp",
      "args": []
    }
  }
}

窗户:

{
  "mcpServers": {
    "androidcodesearch": {
      "type": "stdio",
      "command": "C:\\absolute\\path\\to\\.venv\\Scripts\\androidcodesearchmcp.exe",
      "args": []
    }
  }
}

或添加到 .mcp.json 在项目根目录中,用于项目范围的访问。

克劳德桌面

增添 claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

Linux/macOS:

{
  "mcpServers": {
    "androidcodesearch": {
      "command": "/absolute/path/to/.venv/bin/androidcodesearchmcp",
      "args": []
    }
  }
}

窗户:

{
  "mcpServers": {
    "androidcodesearch": {
      "command": "C:\\absolute\\path\\to\\.venv\\Scripts\\androidcodesearchmcp.exe",
      "args": []
    }
  }
}

项目结构

androidcodesearchmcp/
├── pyproject.toml                          # Project metadata, dependencies, entry point
├── .mcp.json                               # Project-scoped MCP config
├── src/androidcodesearchmcp/
│   ├── __init__.py
│   ├── __main__.py                         # python -m support
│   ├── api.py                              # Async API client (httpx)
│   │   ├── _batch_request()                #   Multipart batch transport (search, suggest)
│   │   ├── _grpc_request()                 #   gRPC-web transport (file content)
│   │   ├── search_code()                   #   → /v1/contents/search
│   │   ├── suggest_symbols()               #   → /v1/contents/suggest
│   │   ├── get_file_content()              #   → /$rpc/.../GetContentsStreaming
│   │   ├── browse_directory()              #   → Gitiles JSON API
│   │   └── list_projects()                 #   Static project list
│   └── server.py                           # MCP server (tool definitions + handlers)
│       ├── _lifespan()                     #   Creates shared httpx.AsyncClient
│       ├── list_tools()                    #   Registers 5 tools with schemas
│       ├── call_tool()                     #   Dispatches tool calls → api.py
│       └── main()                          #   Entry point (asyncio + stdio transport)
└── uv.lock                                 # Locked dependencies

目录标签

目录标签

代码搜索远程访问PythonClaude本地部署Android开发MCP协议AOSP

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP