Token导航 LogoToken导航TokenDH.com
ollama MCP gradio logo
AI代理stdio官方级别未说明来源级核验

ollama MCP gradio

MCP Server

一个隐私保护的本地化LLM代理工具,结合Ollama运行本地LLM,使用Model Context Protocol (MCP)进行安全工具调用,并通过Gradio提供对话式Web界面。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
本地LLM隐私保护PythonAI代理

安装说明

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

作者 / 组织

ParthaPRay

提供方

ParthaPRay

最后核验

2026/5/17 20:23

运行时

Python

快速接入

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

命令预览

python3 -m venv final1

详细介绍

🧠 Gradio+Ollama+MCP:隐私意识本地LLM代理演示

概述

该项目演示了如何构建 具有隐私意识的本地托管LLM代理 使用 没有 (用于在硬件上运行LLM) 模型上下文协议(MCP) 用于安全调用工具,以及 格拉迪奥 用于会话式web UI——所有这些都由本地SQLite数据库提供支持,并作为代理和MCP服务器公开。

关键概念

  • 模型上下文协议(MCP):

- 一种开放协议,允许LLM将本地或远程工具“调用”为API——标准化工具(DB、函数、搜索等)如何插入LLM工作流。 - MCP允许 *尊重隐私,可审计* 工具使用,因为所有函数调用和数据访问都可以在本地监控。

  • 本地化Ollama LLM:

- Ollama允许您运行最先进的LLM(如Granite、Llama 3、Qwen等) *完全在您的机器上*--没有数据离开你的电脑。 - 该项目使用 花岗岩3.1 MoE模型 用于局部推理。

  • 隐私意识代理:

- 您的查询和数据永远不会离开您的设备。 - 所有工具和数据库操作 *本地执行*. - 该架构与边缘设备和自托管部署兼容。

______________________________________________________________________

建筑

  • server.py --启动FastMCP MCP MCP服务器,通过HTTP公开数据库工具。
  • client.py --运行Gradio聊天UI,并将本地LLM(通过Ollama)连接到MCP工具,以获得工具增强响应。

______________________________________________________________________

高水位流量

  1. 用户交互 通过Gradio用户界面(client.py).
  2. 代理 使用Ollama LLM+MCP客户端调用工具(例如读/写SQLite)。
  3. MCP服务器 (server.py)公开工具API(add_data/read_data),并在本地DB上执行SQL。
  4. 所有逻辑和数据 保持私有和本地。

______________________________________________________________________

🖥️ 系统配置

操作系统

  • Ubuntu 24.04 LTS
  • 内核: 6.11.0-25-generic
  • 架构: x86_64 (64位)

处理器(CPU)

  • 型号:第13代英特尔®酷睿™i9-13950HX
  • 芯数:24芯/32螺纹
  • 最大频率:5.50 GHz
  • 虚拟化:支持VT-x
  • L1缓存:896 KiB(数据),1.3 MiB(指令)
  • L2缓存:32 MiB
  • L3缓存:36 MiB

图形(GPU)

  • NVIDIA RTX 5000 Ada世代
  • 虚拟RAM:16GB
  • 驱动程序版本:550.144.03
  • CUDA版本:12.4

Python环境

  • Python版本:3.11.9
  • 虚拟环境: python -m venv final1

杂项

  • 虚拟化功能:已启用(VT-x)
  • NUMA节点:1(节点0:0-31中的所有CPU)

______________________________________________________________________

server.py——SQLite的MCP服务器

目的: 将SQLite作为一组工具公开(add_data, read_data)通过MCP,任何兼容MCP的LLM代理都可以安全地查询/更新数据库。

亮点:

  • 用途 FastMCP 用于快速设置MCP服务器。
  • 初始化SQLite,创建两个表: peopleinteractions.
  • 显示两个工具:

- add_data(query):插入任何SQL行(用于演示目的;可能仅限于生产环境)。 - read_data(query):运行SQL SELECT查询并返回结果。

  • 设计用于 *本地* 使用;易于交换DB或添加更多工具。

代码摘要:

import sqlite3
from fastmcp import FastMCP

# Create and configure MCP server
mcp = FastMCP(name="SQLiteMCPServer", port=8000, transport="streamable-http", ...)

# Setup SQLite
...

# Tool: Insert SQL record
@mcp.tool(name="add_data", ...)
def add_data(query: str) -> bool:
    ...

# Tool: Query records
@mcp.tool(name="read_data", ...)
def read_data(query: str = "SELECT * FROM people") -> list:
    ...

# Start server
if __name__ == "__main__":
    mcp.run(transport="streamable-http", host="127.0.0.1", port=8000)

______________________________________________________________________

client.py——带有MCP感知Ollama代理的Gradio聊天机器人

目的: Gradio聊天机器人界面由 *本地* LLM(通过Ollama)可以自主调用MCP公开的数据库工具(添加/读取),作为其工作流程的一部分。

亮点:

  • 成为LLM:granite3.1-moe 本地——没有数据发送到外部服务器。
  • MCP客户端: 连接到MCP服务器 http://127.0.0.1:8000/mcp 并动态加载可用工具。
  • 功能代理: LLM代理(通过 llama_index)它可以使用语言推理和工具调用来完成查询。
  • Gradio用户界面: 简单的聊天界面+最近的互动显示。
  • 完整的本地日志记录: 每个用户代理聊天和工具调用都会记录到SQLite中,以确保可审计性和隐私性。

代码结构:

# Import LLM (Ollama), MCP client, Gradio, etc.
from llama_index.llms.ollama import Ollama
from llama_index.tools.mcp import BasicMCPClient, McpToolSpec
from llama_index.core.agent.workflow import FunctionAgent
from gradio.queueing import Queue
...

# Set up Ollama LLM
llm = Ollama(model="granite3.1-moe", ...)

# Connect to MCP server, get tool specs
mcp_client = BasicMCPClient("http://127.0.0.1:8000/mcp")
mcp_spec = McpToolSpec(client=mcp_client)

# Initialize FunctionAgent with loaded tools
agent = FunctionAgent(...)

# Gradio UI: Chatbot, input, buttons, history display
with gr.Blocks(...):
    ...

# Message handling: Sends chat to agent, which may call tools, logs all activity
def handle_message(...):
    ...

如何在当地跑步

整个应用程序旨在在专用的Python虚拟环境中运行(mcpollama). 假设:

  • Ollama已安装(使用 curl -fsSL https://ollama.com/install.sh | sh).
  • 模型 granite3.1-moe 已被拉动(ollama pull granite3.1-moe).

分步说明

  1. 创建并激活虚拟环境:
   python3 -m venv final1
   source final1/bin/activate
  1. 安装Python要求:
   pip install -r requirements.txt

image

  1. 启动MCP服务器(在终端1中):
   python server.py

image

  1. 启动Ollama(如果尚未运行,请在单独的终端中启动):
   ollama serve
  1. 启动Gradio聊天UI(在终端2中):
   python client.py

image

  1. 打开Gradio web界面

导航到终端中显示的链接(通常 http://127.0.0.1:7860).

image

  1. 检查sqlitebrowser demo.db

image

______________________________________________________________________

提示: 保持你的 mcpollama 每当运行这些脚本时,虚拟环境都会被激活,以避免与系统Python包发生冲突。 如果您需要(重新)拉取Olama模型:

ollama pull granite3.1-moe

______________________________________________________________________

隐私和安全说明

  • 一切都在本地运行 (代码、模型和数据): *没有云推理,没有远程数据库,除非你配置它!*
  • 所有工具调用 通过MCP服务器路由,使工具调用显式且可监控。
  • 不向外部发送用户数据 除非你专门编写了一个这样做的工具。

______________________________________________________________________

MCP+Ollama+Gradio:有什么独特之处?

  • 本地法学硕士推理:

代理人是 *真正的私人*--您的提示、数据和结果永远不会被任何第三方看到。

  • 组合工具使用:

您可以添加更多工具(API、自定义Python函数等)作为MCP端点,代理将自动发现它们。

  • 可复制用于黑客马拉松、研究和教学

只需最少的设置,即可轻松演示本地LLM代理的自主性和隐私性。

______________________________________________________________________

示例用例

  • 查询数据库中的人员:

“30岁以上的医生都是谁?”

  • 添加新用户:

“加上一个名叫阿卡什的人,35岁,职业科学家。”

  • 查看调试和研究的工具调用跟踪和时间。

______________________________________________________________________

许可证

阿帕奇-2.0

______________________________________________________________________

鸣谢

  • 帕塔·普拉蒂姆·雷(2025 Gradio经纪人和MCP黑客马拉松)

______________________________________________________________________

目录标签

目录标签

本地LLM隐私保护PythonAI代理本地部署工具调用Gradio界面SQLite数据库

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP