Token导航 LogoToken导航TokenDH.com
Mcpo Data Reporting logo
数据服务未说明官方级别未说明来源级核验

Mcpo Data Reporting

MCP Server

一个基于MCP协议的OData报告数据库查询服务,通过OData API为AI工具提供数据库报告能力。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
数据分析C#ClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

aligneddev

提供方

aligneddev

最后核验

2026/5/17 20:19

快速接入

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

详细介绍

MCP OData报告示例

一种模型上下文协议(MCP)服务器,为AI助手提供通过OData API查询报告数据库的能力。此解决方案演示了如何使用MCP标准向AI工具公开数据库报告功能。

概述

该解决方案由三个主要部分组成:

  1. ODataApi -ASP。NET核心Web API,通过OData端点公开数据库实体
  2. McpODataReporting -基于Azure功能的MCP服务器,提供用于查询OData API的工具
  3. mcpODataReporting。AppHost -用于编排分布式应用程序的Aspire应用程序主机

建筑

┌─────────────────┐         ┌──────────────────┐         ┌─────────────────┐
│   AI Assistant  │ ◄─MCP─► │ McpODataReporting│ ◄─HTTP─►│   ODataApi      │
│   (e.g. Claude) │         │  (MCP Server)    │         │  (OData Service)│
└─────────────────┘         └──────────────────┘         └─────────────────┘
                                                                    │
                                                                    ▼
                                                           ┌─────────────────┐
                                                           │   SQL Server    │
                                                           │   (ReportingDb) │
                                                           └─────────────────┘

特性

OData API

  • 具有查询功能的完全OData v4支持($filter, $select, $orderby, $expand, $top, $skip, $count)
  • SQL Server实体框架核心
  • 支持多个实体,包括:

- 客户、产品、订单 - 产品类别和型号 - 销售订单标题和详细信息 - 地址及其他

  • 数据库视图支持复杂查询
  • OpenAPI/Swagger文档

MCP服务器

  • AI助手的两个主要工具:

- Getodatametat -发现可用的实体集及其属性 - GetData -对报告数据库执行OData查询

  • 基于Azure函数和MCP SDK构建
  • 具有扩展超时支持的可配置HTTP客户端
  • 用于监控的Application Insights集成

先决条件

入门指南

1.数据库设置

使用AdventureWorksLT示例架构设置SQL Server数据库。更新配置中的连接字符串:

{
  "ConnectionStrings": {
    "ReportingDb": "Server=(localdb)\\mssqllocaldb;Database=AdventureWorksLT;Trusted_Connection=True;"
  }
}

我创建了一个新的Azure SQL数据库,并使用了AdventureWorksLT数据库的Microsoft示例数据。

2.跑步。NET Aspire

运行整个解决方案的最简单方法是使用Aspire App Host:

cd mcpODataReporting.AppHost
dotnet run

这将启动OData API和MCP服务器,并进行适当的服务发现和协调。

3.单独运行组件

OData API:

cd ODataApi
dotnet run

API将于 https://localhost:7066 (或按配置)。

MCP服务器:

cd MCP
dotnet run

使用MCP服务器

配置

配置您的AI客户端(例如Claude Desktop)以连接到MCP服务器。将以下内容添加到MCP设置中:

{
  "mcpServers": {
    "odata-reporting": {
      "command": "dotnet",
      "args": ["run", "--project", "path/to/MCP/McpODataReporting.csproj"]
    }
  }
}

或者从本地运行注册MCP服务器端点:


    "odata-reporting-mcp-function": {
      "type": "http",
      "url": "http://localhost:63930/runtime/webhooks/mcp/sse"
    },

或指向Azure函数


    "odata-reporting-mcp-function": {
      "type": "http",
      "url": "https://mcpodatareporting.internal.{more}.eastus.azurecontainerapps.io/runtime/webhooks/mcp/sse"
    },

然后VS提示“需要身份验证”

可用的MCP工具

Getodatametat

检索可用实体的架构及其属性。

示例用法:

Please show me what data is available in the reporting database.

GetData

执行OData查询以检索数据。

示例用法:

Get all customers from Seattle
Get the top 10 most expensive products
Show me sales orders with customer details

查询格式:

/EntitySetName?$filter=Field eq 'Value'&$select=Field1,Field2&$top=10

示例:

  • /Customers?$filter=City eq 'Seattle'&$select=FirstName,LastName,EmailAddress
  • /Products?$filter=ListPrice gt 100&$orderby=ListPrice desc&$top=10
  • /SalesOrderHeaders?$expand=Customer,SalesOrderDetails&$top=5

OData查询选项

选项描述示例
$filter筛选结果City eq 'Seattle'
$select选择特定属性FirstName,LastName
$orderby对结果进行排序ModifiedDate desc
$expand包括相关实体Customer,Product
$top限制结果(最多100个)10
$skip跳过结果进行分页20
$count获取总计数true

可用实体

核心表

  • 客户 -客户信息
  • 产品 -产品目录
  • 产品分类 -产品类别层次结构
  • 产品型号 -产品型号信息
  • 销售订单标题 -销售订单主记录
  • 销售订单详情 -销售订单行项目
  • 地址 -地址信息
  • 客户地址 -客户地址关系

视图

  • VGetAll分类 -扁平化产品类别视图
  • V产品和说明 -带有描述的产品
  • VProductModel目录描述 -详细的产品型号目录

项目结构

mcpODataReporting/
├── ODataApi/                      # OData Web API
│   ├── Data/
│   │   ├── ReportingDbContext.cs  # EF Core DbContext
│   │   └── [Entity Models]        # Database entity classes
│   ├── Controllers/               # OData controllers
│   └── Program.cs                 # API startup
├── MCP/                           # MCP Server (Azure Functions)
│   ├── Tools/
│   │   └── OdataTool.cs          # MCP tool implementations
│   ├── Services/
│   │   └── ODataMetadataService.cs # Metadata discovery service
│   └── Program.cs                 # Function app startup
├── mcpODataReporting.AppHost/     # Aspire App Host
│   └── AppHost.cs                 # Orchestration configuration
└── mcpODataReporting.ServiceDefaults/ # Shared service defaults

发展

构建解决方案

dotnet build

运行测试

dotnet test

添加新实体

  1. 将实体类添加到 ODataApi/Data/
  2. 添加 DbSetReportingDbContext
  3. 在中注册实体集 Program.cs:
   odataBuilder.EntitySet("YourEntities");

部署

按照以下步骤部署到Azure:https://learn.microsoft.com/en-us/dotnet/aspire/deployment/azd/aca-deployment-github-actions?tabs=windows&pivots=github-行动

由于这是使用Aspire,您必须在\\mcpODataReporting中。AppHost目录,否则您将遇到问题,它不会创建infi/main.bicep文件,azd-up将失败。 azure文件夹也将位于此文件夹中。

azd init 初始化项目 azd infra gen 将在中创建二头肌文件 infra 目录

azd pipeline config 为CI/CD设置GitHub Actions(在添加新的或更新现有环境变量后再次运行此操作)。它会将值推送到GitHub Secrets/Variables中。

azd up 创建基础架构和资源调配,但可以分开进行资源调配和部署 azd provision 它将提示您输入Azure SQL连接字符串并创建新的资源组 azd deploy 部署应用程序

发布MCP服务器

MCP服务器被配置为打包为自包含的单文件可执行文件:

cd MCP
dotnet publish -c Release

已发布的包可以作为具有包类型的NuGet包分发 McpServer.

部署OData API

OData API可以部署到任何位置。NET托管环境:

  • Azure应用服务
  • Azure容器应用
  • Docker容器
  • 本地IIS

配置

应用设置

ODataApi/apps设置:

{
  "ConnectionStrings": {
    "ReportingDb": "Server=...;Database=...;"
  }
}

MCP配置: 通过配置或环境变量设置OData API基本URL:

{
  "ODataApi": {
    "BaseUrl": "https://localhost:7066"
  }
}

监控

该解决方案包括用于监控的Application Insights集成:

  • 请求/响应日志记录
  • 性能指标
  • 误差跟踪
  • 自定义遥测

安全注意事项

  • 认证:当前配置用于开发。为生产实施正确的身份验证(Azure AD、API密钥等)
  • 授权:添加授权策略以控制对敏感数据的访问
  • 连接串:使用Azure密钥库或安全配置提供程序进行生产
  • 超文本传输安全协议:在生产环境中始终使用HTTPS
  • 速率限制:考虑在OData API上实施速率限制

许可证

本项目按原样提供,用于演示和教育目的。

资源

目录标签

目录标签

数据分析C#Claude数据库查询本地部署OData服务AI工具集成报告系统MCP协议

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP