Token导航 LogoToken导航TokenDH.com
SC MCP With MAF External Auth logo
安全风控stdio官方级别未说明来源级核验

SC MCP With MAF External Auth

MCP Server

展示如何通过OAuth 2.1与PKCE认证集成Sitecore的Model Context Protocol (MCP)服务器,提供Python和.NET实现示例。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
Python安全开发工具

安装说明

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

作者 / 组织

kevinpbuckley

提供方

kevinpbuckley

最后核验

2026/5/17 20:19

快速接入

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

命令预览

pip install -r requirements.txt

详细介绍

Sitecore MCP外部身份验证示例

此存储库演示了如何使用OAuth 2.1身份验证和PKCE与Sitecore的模型上下文协议(MCP)服务器集成,展示了Python和。NET实现。

概述

这些示例展示了如何使用Microsoft Agent Framework和Azure OpenAI构建可以通过MCP工具与Sitecore内容管理交互的AI代理。

📁 项目结构

SCMP_AI_Foundry_App/
├── python_example/          # Python implementation (fully automated)
│   ├── agent_with_mcp.py   # Main chat app with MCP tools
│   ├── mcp_compliant_auth.py # OAuth 2.1 + PKCE authentication
│   ├── instructions.md      # Agent behavior configuration
│   ├── mcp.json            # MCP server configuration
│   └── README.md           # Python-specific documentation
│
├── dotnet_example/          # .NET implementation (using MCP SDK)
│   └── SitecoreMcpChat/
│       ├── Program.cs      # Main chat application
│       ├── McpOAuthClient.cs    # OAuth 2.1 + PKCE
│       ├── instructions.md      # Agent behavior configuration
│       ├── mcp.json            # MCP server configuration
│       └── README.md           # .NET-specific documentation
│
└── README.md               # This file

🚀 快速开始

Python(推荐)

cd python_example
pip install -r requirements.txt
cp .env.example .env        # Configure Azure OpenAI credentials
python agent_with_mcp.py

特征:

  • ✅ 流式响应(逐字输出)
  • ✅ 自动MCP工具集成
  • ✅ 39+Sitecore工具自动可用
  • ✅ 工具调用指示器(🔧 表情符号
  • ✅ OAuth 2.1,带PKCE和令牌缓存

.NET

cd dotnet_example/SitecoreMcpChat
cp appsettings.example.json appsettings.json  # Configure Azure OpenAI
dotnet run

特征:

  • ✅ 官方ModelContextProtocol C#SDK(v0.4.0-review.3)
  • HttpClientTransport 用于HTTP/SSE连接
  • ✅ OAuth 2.1,带PKCE和令牌缓存
  • ✅ 通过SDK发现MCP工具(39多种工具)
  • ✅ 通过代理框架集成本地MCP工具
  • ✅ 自动函数调用-代理根据需要调用工具
  • ✅ 工具调用可见性-显示正在调用哪些工具
  • ⚠️ 无流媒体(预览限制)

🔐 认证

两种实现都使用 OAuth 2.1与PKCE 对于安全身份验证:

  1. 元数据发现:从以下位置读取OAuth端点 .well-known/oauth-authorization-server
  2. 动态客户端注册:在MCP服务器上注册OAuth客户端
  3. PKCE流程:使用代码质询/验证器增强安全性
  4. 浏览器身份验证:打开浏览器以供用户登录
  5. 本地回拨:在上运行HTTP服务器 localhost:3000 接收身份验证码
  6. 代币交换:交换访问令牌的授权码
  7. 令牌缓存:缓存令牌24小时(仅限开发)

⚠️ 安全警告-令牌缓存

当前实施(仅限开发):

  • 缓存在中的令牌 .mcp_token_cache.json
  • 24小时到期,5分钟安全缓冲
  • 纯文本存储
  • 无加密
  • 无审核日志记录

生产要求:

  • ✅ 使用 Azure密钥库 或类似的安全凭证存储
  • ✅ 实施 管理身份 在可能的情况下
  • ✅ 启用 代币轮换 以及刷新机制
  • ✅ 集 令牌寿命更短 (最多1小时)
  • ✅ 启用 全面审计日志
  • ✅ 使用 加密存储 用于缓存凭据
  • ❌ 切勿将令牌缓存文件提交到源代码管理
  • ❌ 切勿在生产环境中使用纯文本文件存储

🛠️ 可用的MCP工具

这两种实现都提供了对39多种Sitecore MCP工具的访问:

站点管理

  • 列出站点、获取站点信息、管理站点配置

内容管理

  • 创建/更新/删除页面和内容项
  • 搜索内容、获取页面详细信息、管理页面模板

组件管理

  • 列出组件,在页面中添加/删除组件
  • 管理组件数据源,设置个性化

语言和本地化

  • 获取可用语言,向页面添加语言版本

资产管理

  • 搜索资产、上传文件、更新资产元数据

市场营销运营

  • 创建个性化版本,管理目标规则

📝 配置

代理说明

两种实现都使用外部 instructions.md 代理行为文件:

python: python_example/instructions.md

  • 何时使用MCP工具的简单指南
  • Python代理框架自动处理工具集成

Dotnet: dotnet_example/SitecoreMcpChat/instructions.md

  • 何时使用MCP工具的简单指南
  • .NET代理框架自动处理工具集成
  • 与Python相同的自动方法

MCP服务器配置

两者都使用 mcp.json 对于MCP服务器设置:

{
  "mcpServers": {
    "marketer": {
      "url": "https://edge-platform.sitecorecloud.io/mcp/marketer-mcp-prod",
      "auth": {
        "type": "external"
      }
    }
  }
}

Azure OpenAI配置

python: .env 文件

AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com
AZURE_OPENAI_DEPLOYMENT=gpt-5.1-chat
AZURE_OPENAI_API_KEY=your-api-key
AZURE_OPENAI_API_VERSION=2025-01-01-preview

.NET: appsettings.json 文件

{
  "AZURE_OPENAI_ENDPOINT": "https://your-resource.openai.azure.com",
  "AZURE_OPENAI_DEPLOYMENT": "gpt-5.1-chat",
  "AZURE_OPENAI_API_KEY": "your-api-key"
}

🔄 实施比较

特性Python。NET
OAuth 2.1+PKCE
令牌缓存✅ (24小时)✅ (24小时)
MCP SDK使用情况✅ (MCPStreamableHTTPTool)✅ (HttpClientTransport)
工具发现✅ (自动)✅ (通过SDK自动)
工具执行✅ (自动)✅ (通过框架自动)
工具编排✅ (自动)✅ (自动)
流媒体响应✅ (单词级)❌ (预览限制)
工具调用可见性
对话历史
说明文件✅ (instructions.md)✅ (instructions.md)

这两种实现都使用本机MCP集成:

  • python:用途 MCPStreamableHTTPTool 用于自动工具编排
  • .NET:通过将工具传递给代理 tools: [.. mcpTools.Cast()] 用于自动编排
  • 两者 遵循Microsoft Agent Framework官方文档模式
  • 两者 是否已准备好进行自动功能调用

根据您的堆栈进行选择: 这两种实现都提供了相同的自动工具调用功能。

🎯 用例

  • 内容管理:创建、更新和管理Sitecore内容项
  • 网站管理:管理网站、页面和模板
  • 市场营销运营:设置个性化和目标
  • 资产管理:上传和组织媒体文件
  • 多语言支持:跨多种语言管理内容
  • 组件管理:配置页面布局和组件

📚 文档

  • Python示例:参见 python_example.README.md
  • .net示例:参见 dotnet_example.README.md
  • Microsoft代理框架: https://learn.microsoft.com/agent-framework/
  • 模型上下文协议: https://modelcontextprotocol.io/
  • Sitecore MCP文档: https://doc.sitecore.com/mp/en/developers/sdk/0/sitecore-marketplace-sdk/developer-guides.html

🔧 先决条件

python

  • Python 3.13+
  • Azure OpenAI资源
  • Sitecore MCP服务器访问

.NET

  • .NET 9.0 SDK+
  • Azure OpenAI资源
  • Sitecore MCP服务器访问

🤝 贡献

这是用于学习目的的示例代码。您可以根据自己的用例自由调整和扩展。

⚠️ 重要说明

  1. 令牌缓存:目前的实施仅用于发展。使用安全的凭据存储进行生产。
  2. 错误处理示例包括基本错误处理。生产代码应该更健壮。
  3. 代理框架版本:Python使用 agent-framework 包装。NET使用微软。代理人。AI预览包。
  4. MCP SDK集成:

- python:通过本地集成 MCPStreamableHTTPTool -全自动编排 - .NET:通过代理框架进行本地集成-将工具直接传递给代理进行自动编排 - 两者都使用具有自动函数调用功能的官方SDK

  1. 生产使用Python和。NET已经为生产做好了准备,可以自动调用工具。根据您喜欢的技术栈进行选择。

📄 许可证

这是用于教育目的的示例代码。

目录标签

目录标签

Python安全开发工具OAuth2.1本地部署PKCESitecoreMCP外部认证Python示例.NET示例

接入字段

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

stdio

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

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP