Token导航 LogoToken导航

MCP Server · AI代理

MCP Client Chat Fastapi Streamlit

一个基于FastAPI和Streamlit的MCP客户端聊天工具,支持与MCP服务器交互并使用LLM进行聊天流程编排。

stdio官方级别未说明来源级核验工具 0
Python模型集成FastAPI

快速开始

作者 / 组织
Prakash2459
提供方
Prakash2459
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Client Chat Fastapi Streamlit 属于AI代理类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

uv run python -V

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

MCP 客户端聊天(FastAPI + Streamlit)

概述

这个项目是一个简洁但功能完备的MCP(模型上下文协议)客户端,具备以下特性:

  • 后端:一个FastAPI服务,通过标准输入输出(stdio)连接到MCP服务器,提供简单的REST端点,并使用大型语言模型(默认为LM Studio)来协调聊天流程。它可以在每次查询时检查和调用MCP工具。
  • 前端:使用Streamlit构建的聊天用户界面,与后端进行交互,维护聊天历史记录,展示可用的MCP工具,并为助手的回复添加动画效果。

流程:

  1. 用户通过Streamlit聊天界面发送了一个查询。
  2. FastAPI 后端将对话转发给一个带有系统消息的大型语言模型(LM Studio),该系统消息列出了可用的 MCP 工具。
  3. 如果大型语言模型(LLM)以函数调用风格的JSON形式响应,指明了要调用的工具,后端将调用该MCP工具一次,并将结果附加到对话中。
  4. 后端再次向大型语言模型(LLM)查询以获取最终答案,然后将完整的消息历史返回给前端进行渲染。

技术栈

  • FastAPI用于后端API
  • 用于stdio连接和工具调用的MCP Python客户端
  • 用于聊天完成的LM Studio(本地版)
  • 用于聊天式前端的Streamlit
  • 用于环境和依赖管理的UV(或“UV用于环境与依赖管理”)

______________________________________________________________________

先决条件

  • Python 3.10及以上版本
  • 已安装UV(参见 https://docs.astral.sh/uv/)
  • 在本地运行的LM Studio(或兼容OpenAI风格的服务器) http://localhost:1234 带有模型 qwen/qwen3-8b (可配置为 api/mcp_client.py)
  • 一个可通过stdio访问并配置在 api/main.py -> Settings.server_command 并且 Settings.server_args

______________________________________________________________________

设置

除非另有说明,否则请在项目根目录下运行这些命令。

  1. 使用uv创建并激活一个虚拟环境:
uv venv
  1. 同步依赖项:
uv sync
  1. (可选)验证安装:
uv run python -V
uv run pip list | cat

______________________________________________________________________

运行后端(FastAPI)

从项目根目录进入 api 创建文件夹并使用 Uvicorn 启动服务器:

cd api
uv run uvicorn main:app --host 0.0.0.0 --port 8000

注:

  • 启动时,该应用程序使用(某种方式)连接到您的MCP服务器 Settings.server_command 并且 Settings.server_args 在 api/main.py调整这些设置以匹配您的MCP服务器。
  • 出于本地开发的便利性,CORS 默认开启。
API终端点
  • GET /tools返回从服务器检测到的MCP工具列表(包括名称、描述、输入模式)。
  • POST /query (衣服等)带身体(部分的)/(衣服等)有主体 { "query": "..." }执行上述描述的聊天协调流程,并返回完整的消息历史记录列表。

示例请求:

curl -X POST http://localhost:8000/query \
  -H "Content-Type: application/json" \
  -d '{"query":"List available tools and use one if relevant."}' | cat

______________________________________________________________________

运行前端(Streamlit)

在项目根目录之外的另一个终端中,启动 Streamlit:

uv run streamlit run frontend/app.py

该应用程序将:

  • 从(指定位置)加载可用工具 GET /tools 并将它们显示在侧边栏中。
  • 提供一个聊天界面,用于向(助手)发送提示 POST /query 并显示基于角色的消息。
  • 为助手回复显示一个简单的打字动画。

确保后端正在运行 http://localhost:8000 默认设置。您可以更改API基础地址 frontend/app.py 如需使用。

______________________________________________________________________

配置

  • 后端大型语言模型(LLM)设置: api/mcp_client.py

- self.lmstudio_url默认 http://localhost:1234/v1/chat/completions - self.lmstudio_model默认 qwen/qwen3-8b

  • MCP服务器设置: api/main.py

- Settings.server_command默认 "uv" - Settings.server_args默认目录和 run main.py 对于示例服务器;请更新为您的MCP服务器命令和参数。

如上所示,配置直接在代码文件中处理。

______________________________________________________________________

它是如何工作的(详细说明)

  1. FastAPI使用一个生命周期上下文来初始化一个长生命周期的对象 MCPClient 该系统管理MCP会话并跟踪完整的对话状态。
  2. MCPClient.process_query() 附加用户消息并调用一次大型语言模型(LLM)。LLM收到一个系统指令,该指令列出了可用的MCP工具,并要求它在适当的时候调用工具时返回JSON。
  3. 如果响应能被解析为包含JSON格式的数据,且 tool 在该领域,客户端恰好调用一次该MCP工具,并将其实现的结果捕获为对话中的一个系统工具结果(tool_result)。
  4. 客户端再次调用大型语言模型(LLM),利用工具输出生成最终的助手回复。
  5. 完整的对话被返回到前端,并同时以JSON文件的形式记录在 api/conversations/ 以便追溯。

设计选择:

  • 每个查询恰好调用一次工具,以保持流程的可预测性。
  • LM输出已进行清理以去除 `` 痕迹并使内容规范化。
  • 消息被序列化为OpenAI风格 [{role, content: [{type: "text", text: "..."}]}] 在发送给LM Studio之前。

______________________________________________________________________

故障排除

  • 后端无法连接到MCP服务器

- 检查 Settings.server_command 并且 Settings.server_args 在 api/main.py。 - 尝试使用相同的命令手动运行您的MCP服务器,以确认其能否启动。

  • LM Studio 错误(非200状态码)

- 确保LM Studio服务器正在运行 http://localhost:1234。 - 确认模型名称 api/mcp_client.py 已可用。

  • 来自Streamlit的CORS或连接错误

- 确保FastAPI后端可通过以下地址访问: http://localhost:8000。 - 在某些系统上,防火墙或VPN可能会阻止本地主机端口。

  • 侧边栏未显示任何工具

- 验证您的MCP服务器是否确实提供了工具。 - 检查后端日志 mcp_client.log 对于任何错误。

______________________________________________________________________

项目结构

api/
  main.py                # FastAPI app, lifespan connects to MCP server
  mcp_client.py          # MCPClient: LLM calls, tool invocation, logging
  conversations/         # JSON logs of each conversation
  utils/logger.py        # Unified file+console logging
frontend/
  app.py                 # Streamlit chat UI
pyproject.toml           # Dependencies managed by uv
uv.lock                  # Resolved lockfile

______________________________________________________________________

许可证

麻省理工学院(MIT)许可证(或您偏好的许可证)

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

聊天工具Python本地部署MCP协议LLM集成FastAPIStreamlit

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Client Chat Fastapi Streamlit

MCP World · 本页

0stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Client Chat Fastapi Streamlit 怎么安装?

公开资料给出的安装命令是 uv run python -V,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Client Chat Fastapi Streamlit 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

MCP Client Chat Fastapi Streamlit 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Client Chat Fastapi Streamlit 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

MCP Client Chat Fastapi Streamlit 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP