模型上下文协议服务器框架

Contextify是一个模块化的企业级.NET框架,用于构建和管理模型上下文协议(MCP)服务器,提供安全、高效的AI工具集成和协议桥接功能。

  • by atakanatali
  • C#
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 atakanatali/contextify-net

使用说明

情境化

A modular, enterprise-grade .NET framework for Model Context Protocol (MCP) servers


核心架构

Contextify提供了一个高级编排层,抽象了模型上下文协议的复杂性。

graph TB
    subgraph Client ["AI Client (Claude/GPT)"]
        CL[AI Assistant]
    end

    subgraph Contextify ["Contextify Stack"]
        direction TB
        T[Transport Layer<br/>HTTP / STDIO] --> DP[JSON-RPC Dispatcher]
        DP --> S[Security Layer<br/>Deny-by-Default Policy]
        S --> C[Core Orchestrator]
        C --> CAT[Tool/Resource Catalog]
    end

    subgraph Providers ["Feature Providers"]
        OA[OpenAPI / Swagger] --> C
        NA[Native .NET Tools] --> C
        SY[System Actions] --> C
    end

    subgraph SDK ["Official SDK Bridge"]
        AD[OfficialAdapter] -.-> |Maps to| MSD[Anthropic SDK Data Models]
    end

    CL <==> T
    C <==> AD

套餐深潜

Contextify是一个模块化的生态系统。你只需要安装你需要的东西。

1.基础和协议桥

2.集成与托管

  • Contextify.AspNetCore:提供 AddContextify() 和 MapContextifyMcp() 扩展。它与标准相结合。网 ILogger, IOptions以及依赖注入。
  • Contextify.Transport.Http:实施 服务器发送事件(SSE) 适用于通过HTTP进行通信的AI客户端(如大多数企业web应用程序)。
  • Contextify.Transport.Stdio:实现标准的输入/输出传输,允许您。NET应用程序充当Claude Desktop应用程序等工具的本地MCP服务器。

3.能力扩展

  • Contextify.OpenApi:一个强大的引擎,可以解析您现有的Swagger/OpenAPI规范并动态生成MCP工具。这允许您在几秒钟内将现有的微服务暴露给AI。
  • Contextify.Actions.Defaults:高性能,原生。NET实现的常见任务(例如,文件I/O、系统信息、数学)。

4.配置和安全

5.多后端网关


工作原理:协议桥

Contextify不会从头开始重新实现协议。相反,它利用了 官方Anthropic SDK.

当AI客户端(如Claude)发送 tools/list 请求:

  1. 传输层 (HTTP或Stdio)接收原始JSON并将其传递给 调度员.
  2. 调度员 查询 核心编排器 对于可用的工具。
  3. 核心编排器 从所有注册的提供者(OpenAPI、系统操作等)中提取数据,并通过 安全层.
  4. 官方适配器 获取列入白名单的Contextify工具定义,并将其转换为 ModelContextProtocol.Types.Tool 物体。
  5. 这 Anthropic SDK 然后处理最终的JSON-RPC序列化,并向客户端返回符合要求的响应。

这种“两全其美”的方法确保了100%的协议合规性,同时提供了丰富的。NET惯用开发人员经验。


入门指南

1.构建基于Web的MCP服务器(HTTP)

通过HTTP端点向Claude公开您的API。

安装:

dotnet add package Contextify.AspNetCore
dotnet add package Contextify.Transport.Http

实施:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddContextify()
    .AddHttpTransport(options => options.Endpoint = "/mcp")
    .AddAppSettingsPolicyProvider();

var app = builder.Build();
app.MapContextifyMcp();
app.Run();

2.构建CLI MCP服务器(STDIO)

非常适合本地开发或基于CLI的自定义上下文提供程序。

安装:

dotnet add package Contextify.Transport.Stdio

安全:默认拒绝

在Contextify中,安全不是事后的想法。默认情况下, 没有工具暴露在外。您必须在配置中明确地将工具列入白名单:

{
  "Contextify": {
    "Security": {
      "DefaultPolicy": "Deny",
      "Whitelist": [
        { "ToolName": "weather:*", "Enabled": true },
        { "ToolName": "internal:user:read", "Enabled": true }
      ]
    }
  }
}

网关模式

在管理数十台MCP服务器时 Contextify网关 允许您将它们聚合到一个同名目录中。

  • 统一目录:将上游工具合并到一个列表中。
  • 命名空间: upstream1:tool_name 防止碰撞。
  • 健康检查:自动删除不健康的上游。
  • 领事发现:无需重新启动即可将新的MCP服务器添加到您的基础架构中。

文档


许可证

根据 MIT许可证.