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

MCP AI Summary demo

MCP Server

一个基于MCP协议的服务,通过本地Ollama Gemma 3 4B模型从数据库或API获取JSON数据并生成AI摘要,内置数据遮罩功能保护敏感信息。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
本地LLMPythonClaudeClaude DesktopClaudeVS Code

安装说明

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

作者 / 组织

LiShun522

提供方

LiShun522

最后核验

2026/5/17 20:23

运行时

Python

快速接入

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

命令预览

uv run python test_local.py

详细介绍

MCP AI Summary Demo

專案概述

這是一個 Model Context Protocol (MCP) 學習範例專案,展示如何建立一個 MCP Server 來:

  1. 📊 從資料庫API 取得 JSON 資料
  2. 📝 使用結構化 Prompt 模板,將資料帶入佔位符
  3. 🤖 透過本地 Ollama Gemma 3 4B 生成 AI 摘要
  4. 🔒 內建資料遮罩功能,保護敏感個資

🎯 什麼是 MCP?

Model Context Protocol (MCP) 是一個開放標準,用於連接 AI 應用程式與外部系統。

想像 MCP 就像是 AI 世界的 USB-C 接口

┌─────────────────┐    MCP 協議    ┌─────────────────┐
│   AI 客戶端     │◄─────────────►│   MCP Server    │
│  (Claude 等)    │               │  (你的程式碼)    │
└─────────────────┘               └─────────────────┘
                                          │
                    ┌─────────────────────┼─────────────────────┐
                    │                     │                     │
                    ▼                     ▼                     ▼
              ┌──────────┐         ┌──────────┐         ┌──────────┐
              │  資料庫   │         │   API    │         │  檔案系統 │
              └──────────┘         └──────────┘         └──────────┘

MCP 的三大核心概念

概念說明範例
Resources提供可讀取的資料資料庫記錄、設定檔
Tools提供可執行的功能查詢資料、生成報告
Prompts預定義的 Prompt 模板摘要模板、分析模板

📁 專案結構

MCP_AI_Summary_demo/
├── pyproject.toml          # Python 專案設定
├── .env.example            # 環境變數範例
├── .gitignore              # Git 忽略規則
├── README.md               # 本說明文件
├── test_local.py           # 本地測試腳本
│
├── src/
│   ├── __init__.py         # 模組初始化
│   ├── server.py           # 🚀 MCP Server 主程式
│   ├── config.py           # ⚙️ 設定管理
│   ├── data_source.py      # 📊 資料來源(DB/API)
│   ├── prompts.py          # 📝 Prompt 模板系統
│   ├── ollama_client.py    # 🤖 Ollama 整合
│   └── security.py         # 🔒 資料遮罩
│
└── data/
    └── demo.db             # SQLite 資料庫(自動建立)

🚀 快速開始

1. 環境準備

# 安裝 uv(Python 套件管理器)
irm https://astral.sh/uv/install.ps1 | iex

# 進入專案目錄
cd MCP_AI_Summary_demo

# 建立虛擬環境並安裝相依套件
uv venv
.\.venv\Scripts\Activate.ps1
uv sync

2. 設定環境變數

# 複製環境變數範例
Copy-Item .env.example .env

# 編輯 .env 檔案(可選)

3. 安裝並啟動 Ollama

# 下載並安裝 Ollama: https://ollama.com/download

# 拉取 Gemma 3 4B 模型
ollama pull gemma3:4b

# 啟動 Ollama 服務(通常會自動啟動)
ollama serve

4. 測試功能

# 執行本地測試腳本
uv run python test_local.py

🔧 設定 MCP Client

VS Code 設定

在 VS Code 使用者設定或 .vscode/mcp.json 中加入:

{
  "mcp": {
    "servers": {
      "ai-summary": {
        "command": "uv",
        "args": [
          "--directory",
          "C:\\Users\\gn012\\OneDrive\\Desktop\\MCP_AI_Summary_demo",
          "run",
          "python",
          "-m",
          "src.server"
        ]
      }
    }
  }
}

Claude Desktop 設定

編輯 %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "ai-summary": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\Users\\gn012\\OneDrive\\Desktop\\MCP_AI_Summary_demo",
        "run",
        "python",
        "-m",
        "src.server"
      ]
    }
  }
}

📝 使用方式

可用的 Tools

工具名稱功能參數
query_employees查詢員工資料department, limit
query_projects查詢專案資料status, limit
fetch_api_data從 API 取得資料endpoint, limit
generate_summary生成 AI 摘要template_name, data, extra_vars
answer_question基於資料回答問題question, data_source_type, filters
check_ollama_status檢查 Ollama 狀態
list_prompt_templates列出可用模板

可用的 Prompt 模板

模板名稱用途變數
data_summary通用資料摘要data
employee_analysis員工資料分析department, employees
project_status專案狀態報告projects, current_date
api_data_summaryAPI 資料摘要source, data_type, data, focus_areas
qa_with_context基於資料問答context_data, question
custom_summary自訂摘要custom_instructions, data

範例對話

在 AI 客戶端中,你可以這樣使用:

使用者:查詢研發部的員工資料

AI:(呼叫 query_employees tool)
    找到 2 位研發部員工...

使用者:幫我分析這些員工資料

AI:(呼叫 generate_summary tool,使用 employee_analysis 模板)
    根據資料分析...

🔒 企業安全考量

資料遮罩功能

本專案內建資料遮罩機制,自動保護敏感欄位:

# 原始資料
{"email": "test@example.com", "phone": "0912-345-678"}

# 遮罩後
{"email": "t**t@example.com", "phone": "09******78"}

預設遮罩欄位

  • email - 電子郵件
  • phone - 電話號碼
  • ssn - 社會安全號碼
  • credit_card - 信用卡號
  • password - 密碼

設定自訂遮罩

.env 中設定:

ENABLE_DATA_MASKING=true
MASKED_FIELDS=email,phone,ssn,credit_card,password,身分證字號

本地部署優勢

使用 Ollama 在本地執行 LLM,資料不會傳送到外部:

┌──────────────────────────────────────────────────────────────┐
│                      企業內部網路                             │
│                                                              │
│  ┌─────────────┐     ┌─────────────┐     ┌─────────────┐    │
│  │ MCP Client  │────▶│ MCP Server  │────▶│   Ollama    │    │
│  │ (AI 助理)    │     │ (本專案)     │     │ (本地 LLM)  │    │
│  └─────────────┘     └──────┬──────┘     └─────────────┘    │
│                             │                                │
│                      ┌──────▼──────┐                         │
│                      │  企業資料庫  │                         │
│                      └─────────────┘                         │
│                                                              │
└──────────────────────────────────────────────────────────────┘
                              ❌ 資料不外流

📚 MCP 架構詳解

通訊流程

1. Client 啟動 MCP Server(透過 stdio)
2. Client 發送初始化請求
3. Server 回應支援的功能(tools, resources, prompts)
4. Client 可以:
   - 讀取 Resources 取得資料
   - 呼叫 Tools 執行功能
   - 使用 Prompts 取得預定義模板
5. Server 處理請求並回傳結果

本專案的資料流

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│   Client    │    │ MCP Server  │    │ Data Source │
└──────┬──────┘    └──────┬──────┘    └──────┬──────┘
       │                  │                   │
       │  query_employees │                   │
       │─────────────────▶│                   │
       │                  │  SQL Query        │
       │                  │──────────────────▶│
       │                  │                   │
       │                  │  Raw Data         │
       │                  │◀──────────────────│
       │                  │                   │
       │                  │ ┌───────────────┐ │
       │                  │ │ Data Masking  │ │
       │                  │ └───────────────┘ │
       │                  │                   │
       │  Masked Data     │                   │
       │◀─────────────────│                   │
       │                  │                   │
       │  generate_summary│                   │
       │─────────────────▶│                   │
       │                  │ ┌───────────────┐ │
       │                  │ │ Prompt Render │ │
       │                  │ └───────────────┘ │
       │                  │        │          │
       │                  │        ▼          │
       │                  │ ┌───────────────┐ │
       │                  │ │    Ollama     │ │
       │                  │ └───────────────┘ │
       │                  │                   │
       │  AI Summary      │                   │
       │◀─────────────────│                   │

🔧 進階設定

使用其他 LLM 模型

修改 .env

# 使用其他 Ollama 模型
OLLAMA_MODEL=llama3:8b

# 或連接遠端 Ollama
OLLAMA_BASE_URL=http://192.168.1.100:11434

連接企業內部 API

# 替換為企業內部 API
API_BASE_URL=https://api.yourcompany.internal

使用其他資料庫

目前使用 SQLite,可擴展為:

# 在 data_source.py 中添加其他資料庫連接
# 例如 PostgreSQL、MySQL 等

❓ 常見問題

Q: Ollama 無法連接?

# 確認 Ollama 是否執行中
ollama list

# 如果沒有,啟動服務
ollama serve

Q: 模型不存在?

# 拉取模型
ollama pull gemma3:4b

Q: 資料庫找不到?

資料庫會在首次執行時自動建立於 data/demo.db

Q: 如何新增自訂 Prompt 模板?

src/prompts.py_register_default_templates 方法中添加:

self.register(PromptTemplate(
    name="my_template",
    description="我的自訂模板",
    template="""{{instruction}}
    
資料:{{data}}

請處理以上資料。"""
))

📖 學習資源


📄 授權

MIT License - 歡迎自由使用與修改

目录标签

目录标签

本地LLMPythonClaudeAI摘要生成本地部署MCP协议数据遮罩结构化Prompt

支持客户端

Claude DesktopClaudeVS Code

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP