使用说明
安卓MCP客户端
一个功能齐全的Android应用程序,充当 模型上下文协议(MCP) 客户端,允许您连接到任何MCP服务器并动态显示各种类型的数据。
特性
🔌 通用MCP服务器连接
- 通过HTTP/HTTPS连接到任何MCP服务器
- 完全支持MCP协议(2024-11-05版)
- 自动服务器初始化和能力检测
📊 动态内容渲染
该应用程序支持动态显示多种内容类型:
- 文本内容:纯文本、格式化文本、标题
- 图像:带字幕的基于URL的图像
- 视频:带元数据的视频内容显示
- 列表:有序和无序列表
- 图表:折线图、条形图、饼图、散点图
- 表格:带标题和行的数据表
- 代码:语法突出显示的代码块
- 链接:带有描述的可点击链接
- 错误消息:格式化错误显示
🛠️ MCP功能
- 工具:浏览并执行可用的MCP工具
- 资源:访问和读取MCP资源
- 实时结果:实时查看工具执行结果
- 错误处理:全面的错误显示和处理
建筑
该应用程序是使用现代Android开发实践构建的:
- 语言:科特林
- UI框架:Jetpack作曲
- 建筑:MVVM(模型视图ViewModel)
- 网络:OkHttp
- JSON解析:Gson
- 图像加载:线圈
- 图表:MPAndroidChart
- 视频:Media3 ExoPlayer
项目结构
app/
├── src/main/java/com/mcpclient/
│ ├── MainActivity.kt # Main entry point
│ ├── models/
│ │ ├── MCPModels.kt # MCP protocol models
│ │ └── ContentModels.kt # Content type models
│ ├── network/
│ │ └── MCPClient.kt # MCP client implementation
│ ├── data/
│ │ └── ContentParser.kt # Content parsing utilities
│ └── ui/
│ ├── MCPViewModel.kt # State management
│ ├── MCPScreen.kt # Main UI screens
│ ├── ContentRenderer.kt # Content display components
│ └── theme/ # App theming
构建应用程序
先决条件
- 安卓工作室刺猬(2023.1.1)或更高版本
- JDK 17或更高版本
- API 34级Android SDK
- 等级8.2+
构建步骤
-
克隆存储库:
git clone <repository-url> cd Android_mcp -
在Android Studio中打开:
- 打开安卓工作室
- 选择“打开现有项目”
- 导航到克隆的目录
-
同步渐变:
- Android Studio将自动同步Gradle
- 等待依赖项下载
-
构建项目:
./gradlew build -
在设备/模拟器上运行:
- 连接Android设备或启动模拟器
- 在Android Studio中单击“运行”或使用:
./gradlew installDebug
用法
连接到MCP服务器
- 启动应用程序 在您的Android设备上
- 输入服务器URL 在连接屏幕中(例如。,
http://localhost:3000) - 点击“连接” 建立连接
- 连接后,您将看到服务器信息
浏览工具
- 导航到 “工具” 标签
- 浏览服务器提供的可用工具
- 点击任何工具执行它
- 查看结果 “结果” 标签
访问资源
- 导航到 “资源” 标签
- 浏览可用资源
- 点击任何资源以阅读其内容
- 查看中的内容 “结果” 标签
查看结果
- 导航到 “结果” 标签
- 查看所有工具执行和资源读取
- 内容根据类型动态呈现
- 使用 “全部清除” 清除结果
内容类型示例
文本
{
"type": "text",
"text": "Hello from MCP server!"
}
图像
{
"type": "image",
"url": "https://example.com/image.png",
"caption": "Sample image"
}
图表
{
"type": "chart",
"chartType": "bar",
"title": "Monthly Sales",
"labels": ["Jan", "Feb", "Mar"],
"datasets": [{
"label": "Sales",
"values": [100, 150, 200],
"color": "#FF6384"
}]
}
表格
{
"type": "table",
"title": "User Data",
"headers": ["Name", "Age", "City"],
"rows": [
["Alice", "30", "NYC"],
["Bob", "25", "SF"]
]
}
列表
{
"type": "list",
"title": "Todo Items",
"items": ["Task 1", "Task 2", "Task 3"],
"ordered": false
}
MCP协议支持
该客户端实现了MCP协议规范(2024-11-05),支持:
- 初始化/已初始化:服务器握手和能力协商
- 工具:
tools/list和tools/call - 资源:
resources/list和resources/read - 错误处理:标准JSON-RPC错误响应
配置
服务器URL
默认服务器URL为 http://localhost:3000。您可以在连接屏幕中更改此设置。
要在开发计算机上使用本地MCP服务器进行测试:
- 使用
http://10.0.2.2:3000Android模拟器 - 将计算机的本地IP用于物理设备(例如。,
http://192.168.1.100:3000)
网络安全
该应用程序允许明文流量用于开发。对于生产,请确保您的MCP服务器使用HTTPS。
依赖项
此项目中使用的关键依赖关系:
// Core Android
androidx.core:core-ktx:1.12.0
androidx.lifecycle:lifecycle-runtime-ktx:2.6.2
androidx.activity:activity-compose:1.8.1
// Jetpack Compose
androidx.compose:compose-bom:2023.10.01
androidx.compose.material3:material3
// Networking
com.squareup.okhttp3:okhttp:4.12.0
com.google.code.gson:gson:2.10.1
// Image & Video
io.coil-kt:coil-compose:2.5.0
androidx.media3:media3-exoplayer:1.2.0
// Charts
com.github.PhilJay:MPAndroidChart:v3.1.0
故障排除
连接问题
- 确保MCP服务器正在运行且可访问
- 检查防火墙设置
- 验证服务器URL是否正确
- 对于模拟器,请使用
10.0.2.2而不是localhost
构建问题
- 清理项目:
./gradlew clean - 在Android Studio中使缓存无效
- 确保您拥有正确的JDK版本(17)
内容未显示
- 检查MCP服务器的响应格式
- 验证内容类型是否与预期格式匹配
- 检查logcat是否存在解析错误
贡献
欢迎投稿!请随时提交拉取请求或未决问题。
许可证
这个项目是开源的,可以在MIT许可证下使用。
MCP资源
支持
对于问题或疑问:
- 检查故障排除部分
- 审查MCP规范
- 在GitHub上打开一个问题
