Token导航 LogoToken导航TokenDH.com
it asset management MCP adk chat agent logo
AI代理stdio官方级别未说明来源级核验

it asset management MCP adk chat agent

MCP Server

一个生产就绪的IT资产管理系统,集成Google ADK与Model Context Protocol (MCP),通过Streamable HTTP实现高效通信。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
FastAPIPythonAI代理

安装说明

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

作者 / 组织

SudhakarC-hub

提供方

SudhakarC-hub

最后核验

2026/5/17 20:23

快速接入

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

命令预览

pip install -r requirements.txt

详细介绍

IT资产经理-ADK+MCP POC

生产就绪的IT资产管理系统演示 谷歌ADK 与...的整合 模型上下文协议(MCP) 使用 可流式传输的HTTP (模式2)。

建筑

User (Terminal)
    ↓
ADK Agent (Ollama Mistral)
    ↓
MCP Toolset (Streamable HTTP)
    ↓
MCP Server (Port 8002)
    ↓
FastAPI Backend (Port 8005)

组件

1.FastAPI后端(swagger_api/api_server.py)

  • 用于IT资产管理的REST API
  • 端点:GET/POST /assets
  • 端口: 8005

2.MCP服务器(mcp_servers/mcp_server.py)

  • 使用以下方式将FastAPI作为MCP工具公开 可流式传输的HTTP (生产模式)
  • 工具: list_assets, add_asset
  • 端口: 8002
  • 端点: /mcp

3.ADK代理商(it_asset_manager_app/agent.py)

  • 谷歌ADK代理Ollama Mistral LLM
  • 用途 McpToolset 随着 StreamableHTTPConnectionParams
  • 连接到MCP服务器以执行工具

设置

先决条件

  • Python 3.11+
  • 奥利玛与米斯特拉尔模型
  • 虚拟环境

安装

# 1. Activate virtual environment
source venv/bin/activate

# 2. Install dependencies
pip install -r requirements.txt

# 3. Ensure Ollama is running
ollama run mistral

运行系统

打开 3个独立的终端:

终端1:FastAPI服务器

cd /Users/sudhakarchigurupati/ADKProject/mcp_project
source venv/bin/activate
python swagger_api/api_server.py

✅ 正在运行:http://localhost:8005

终端2:MCP服务器

cd /Users/sudhakarchigurupati/ADKProject/mcp_project
source venv/bin/activate
python mcp_servers/mcp_server.py

✅ 正在运行:http://localhost:8002/mcp

3号航站楼:ADK代理

选项A:终端聊天(ADK CLI)

cd /Users/sudhakarchigurupati/ADKProject/mcp_project
source venv/bin/activate
adk run it_asset_manager_app

选项B:网络聊天(流媒体)

cd /Users/sudhakarchigurupati/ADKProject/mcp_project
source venv/bin/activate
streamlit run streamlit_app/app.py

在浏览器中打开http://localhost:8501

用法

ADK代理运行后,尝试以下命令:

You: hello
You: List all assets
You: Add asset id 10, name Surface Pro, owner Mike, status active
You: Show me the inventory

关键文件

mcp_project/
├── swagger_api/
│   └── api_server.py          # FastAPI backend
├── mcp_servers/
│   └── mcp_server.py          # MCP server (Streamable HTTP)
├── it_asset_manager_app/
│   ├── agent.py               # ADK agent with MCP toolset
│   ├── __init__.py
│   └── .env                   # Environment variables
├── requirements.txt           # Python dependencies
└── README.md                  # This file

运作原理

  1. 用户输入 → ADK代理接收用户消息
  2. LLM决策 → Ollama Mistral决定使用哪种工具
  3. MCP呼叫 → ADK's McpToolset 通过流式HTTP调用MCP服务器
  4. 工具执行 → MCP服务器执行工具(调用FastAPI)
  5. 响应 → 结果通过链返回给用户

MCP工具可用

list_assets()

从库存中检索所有IT资产。

示例:“列出所有资产”

add_asset(asset_id, name, owner, status)

将新的IT资产添加到库存中。

参数:

  • asset_id (int):唯一标识符
  • name (str):资产名称/型号
  • owner (str):分配给资产的人员
  • status (str):状态(默认:“活动”)

示例:“添加资产id 5、名称iPad Pro、所有者Sarah、状态活动”

生产模式

此实现使用 模式2:远程MCP服务器(流式HTTP)ADK MCP文档,建议用于生产部署,原因如下:

  • ✅ 可扩展性(无状态模式)
  • ✅ 基于HTTP的通信
  • ✅ 适用于云运行/容器化部署
  • ✅ 更好的错误处理和监控

验证

测试FastAPI

curl http://localhost:8005/assets

测试MCP服务器

代理连接时,MCP服务器应显示连接日志。

测试代理

代理应回应问候,并在被询问时执行MCP工具。

故障排除

代理未响应

  • 检查Ollama是否正在运行: ollama list
  • 验证MCP服务器是否在端口8002上运行
  • 检查FastAPI是否在端口8005上运行

端口冲突

# Check ports
lsof -i :8005  # FastAPI
lsof -i :8002  # MCP
lsof -i :11434 # Ollama

# Kill if needed
lsof -ti:8002 | xargs kill -9

导入错误

运行时确保您处于项目根目录 adk run.

技术栈

  • 谷歌ADK:代理框架
  • MCP(模型上下文协议):工具集成协议
  • 快速API:后端API
  • 奥拉玛:本地法学硕士(西北)
  • 可流式传输的HTTP:生产就绪的MCP运输
  • Python 3.11:运行时

______________________________________________________________________

高级:使用多个MCP服务器

ADK支持连接到 多个MCP服务器 同时,允许您构建多服务AI代理。

用例

想象一下,您为不同的域提供单独的服务:

  • IT资产管理 (端口8002)
  • 人力资源管理 (端口8003)
  • 金融 (端口8004)

每个服务都有自己的MCP服务器,提供特定于域的工具。

实施

from google.adk.agents.llm_agent import Agent
from google.adk.models.lite_llm import LiteLlm
from google.adk.tools.mcp_tool import McpToolset, StreamableHTTPConnectionParams

# MCP Server 1: IT Asset Management
asset_mcp = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url="http://localhost:8002/mcp"
    )
)

# MCP Server 2: HR Management
hr_mcp = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url="http://localhost:8003/mcp"
    )
)

# MCP Server 3: Finance
finance_mcp = McpToolset(
    connection_params=StreamableHTTPConnectionParams(
        url="http://localhost:8004/mcp"
    )
)

# Create agent with ALL MCP toolsets
root_agent = Agent(
    model=LiteLlm(
        model="ollama_chat/mistral:latest",
        api_base="http://localhost:11434"
    ),
    name="multi_service_agent",
    description="Multi-service agent managing IT, HR, and Finance",
    instruction="""You are a multi-service assistant with access to:
    
    IT Asset Management:
    - list_assets, add_asset
    
    HR Management:
    - list_employees, add_employee, get_employee_details
    
    Finance:
    - list_invoices, create_invoice, get_budget
    
    Use the appropriate tools based on user requests.""",
    tools=[
        asset_mcp,    # All IT asset tools
        hr_mcp,       # All HR tools
        finance_mcp   # All finance tools
    ],
)

建筑

User: "List all assets and show me John's employee details"
    ↓
ADK Agent (Single LLM)
    ├─→ Asset MCP Server (Port 8002) → list_assets()
    └─→ HR MCP Server (Port 8003) → get_employee_details("John")

益处

关注点分离 -每个服务都有自己的MCP服务器\ ✅ 独立缩放 -分别扩展每项服务\ ✅ 团队所有权 -不同的团队可以拥有不同的MCP服务器\ ✅ 易于集成 -只需添加另一个 McpToolset 连接新服务\ ✅ 单代理接口 -用户与一个代理交互,该代理协调所有服务

运作原理

  1. 工具发现:ADK自动发现所有MCP服务器中的所有工具
  2. LLM决策LLM分析用户请求并决定使用哪些工具
  3. 并行执行:ADK可以并行调用来自不同MCP服务器的多个工具
  4. 响应综合:LLM将多个服务的结果组合成一个连贯的响应

生产注意事项

  • 服务发现:为MCP服务器URL使用环境变量
  • 健康检查:为每个MCP服务器实施健康检查端点
  • 错误处理:每个MCP服务器应独立处理错误
  • 认证:为生产中的MCP服务器添加身份验证
  • 速率限制:对每个MCP服务器实施速率限制
  • 监控:分别监控每个MCP服务器

示例:基于环境的配置

import os

# Load MCP server URLs from environment
ASSET_MCP_URL = os.getenv("ASSET_MCP_URL", "http://localhost:8002/mcp")
HR_MCP_URL = os.getenv("HR_MCP_URL", "http://localhost:8003/mcp")
FINANCE_MCP_URL = os.getenv("FINANCE_MCP_URL", "http://localhost:8004/mcp")

# Create toolsets
asset_mcp = McpToolset(
    connection_params=StreamableHTTPConnectionParams(url=ASSET_MCP_URL)
)
hr_mcp = McpToolset(
    connection_params=StreamableHTTPConnectionParams(url=HR_MCP_URL)
)
finance_mcp = McpToolset(
    connection_params=StreamableHTTPConnectionParams(url=FINANCE_MCP_URL)
)

# Agent with all services
root_agent = Agent(
    model=LiteLlm(model="ollama_chat/mistral:latest"),
    tools=[asset_mcp, hr_mcp, finance_mcp],
)

此模式允许您构建 企业级多服务人工智能代理 它可以跨整个组织的服务进行编排! 🚀

目录标签

目录标签

FastAPIPythonAI代理IT资产管理本地部署GoogleADKMCP协议OllamaMistral

接入字段

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

stdio

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

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP