You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Pydantic AI客户端实现Notion远程MCP服务器的OAuth授权连接?

解决Pydantic AI接入Notion MCP服务器的OAuth授权问题

1. 获取Notion OAuth应用凭证

  • 登录Notion开发者平台,创建新的内部或公共应用
  • 记录生成的Client ID和Client Secret
  • 在应用设置中配置重定向URI(需与后续授权流程中的URI一致,例如http://localhost:8000/callback)

2. 完成OAuth授权流程获取访问令牌

步骤1:引导用户授权

构造授权请求URL,让用户访问该URL并完成授权:

https://api.notion.com/v1/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code&scope=mcp:read,mcp:write
  • 替换YOUR_CLIENT_ID和YOUR_REDIRECT_URI为实际值
  • scope参数按需调整,至少包含Notion MCP所需权限(如mcp:read用于读取,mcp:write用于写入)

步骤2:用授权码交换访问令牌

用户授权后,重定向URI会收到code参数,用该代码调用Notion令牌接口获取访问令牌:

import httpx

token_url = "https://api.notion.com/v1/oauth/token"
payload = {
    "grant_type": "authorization_code",
    "code": "AUTHORIZATION_CODE_FROM_CALLBACK",
    "redirect_uri": "YOUR_REDIRECT_URI",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET"
}

response = httpx.post(token_url, json=payload)
token_data = response.json()
access_token = token_data["access_token"]
refresh_token = token_data.get("refresh_token")  # 用于令牌过期后刷新

3. 在Pydantic AI中配置带授权的MCP客户端

修改原代码,为MCPServerStreamableHTTP添加包含OAuth令牌的请求头:

from pydantic_ai import MCPServerStreamableHTTP, Agent

# 初始化带授权头的MCP客户端
notion_mcp = MCPServerStreamableHTTP(
    "https://mcp.notion.com/mcp",
    headers={"Authorization": f"Bearer {access_token}"}
)

agent = Agent(
    name="Notion Assistant Chat Agent",
    model=model,
    output_type=str,
    instrument=True,
    toolsets=[notion_mcp]
)

# 运行agent...

4. 处理令牌过期

访问令牌有有效期,需用refresh_token定期刷新:

def refresh_notion_token(refresh_token, client_id, client_secret):
    token_url = "https://api.notion.com/v1/oauth/token"
    payload = {
        "grant_type": "refresh_token",
        "refresh_token": refresh_token,
        "client_id": client_id,
        "client_secret": client_secret
    }
    response = httpx.post(token_url, json=payload)
    return response.json()

在令牌过期前调用该函数更新access_token,并重新配置MCP客户端。

内容的提问来源于stack exchange,提问作者Krešimir Nesek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:03:11