RENXT MCP服务器

一个为Claude Desktop提供访问Blackbaud Raiser's Edge NXT (RENXT) API以进行捐赠者管理的模型上下文协议(MCP)服务器。

  • by RynneSpin
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 rynnespin/renxt-mcp

使用说明

Renxt MCP服务器

一个模型上下文协议(MCP)服务器,为Claude Desktop提供对Blackbaud Raiser的Edge NXT(RENXT)API的访问,用于成分管理。

特性

  • 列出成分:检索成分的分页列表
  • 搜索成分:按姓名、电子邮件或查找ID搜索选民
  • 获取成分详细信息:获取特定成分的详细信息
  • OAuth令牌管理:自动令牌刷新和安全凭证处理
  • Claude桌面集成:通过MCP与Claude Desktop无缝集成

先决条件

  • Node.js(v18或更高版本)
  • 具有RENXT API访问权限的Blackbaud开发人员帐户
  • Claude桌面应用程序

安装

  1. 克隆存储库

    git clone https://github.com/RynneSpin/renxt-mcp.git
    cd renxt-mcp
    
  2. 安装依赖项

    npm install
    
  3. 设置环境变量

    创建一个 .env 项目根目录中的文件:

    BLACKBAUD_CLIENT_ID=your_client_id_here
    BLACKBAUD_CLIENT_SECRET=your_client_secret_here
    BLACKBAUD_SUBSCRIPTION_KEY=your_subscription_key_here
    BLACKBAUD_REDIRECT_URI=http://localhost:5173/callback
    PORT=5173
    
  4. 使用Blackbaud进行身份验证

    npm run auth
    

    这将打开一个用于OAuth身份验证的浏览器窗口并保存您的令牌。

Claude桌面配置

将服务器添加到Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "renxt": {
      "command": "/usr/local/bin/node",
      "args": ["/path/to/renxt-mcp/server.js"],
      "cwd": "/path/to/renxt-mcp"
    }
  }
}

替换 /path/to/renxt-mcp 带有项目目录的实际路径。

可用工具

list_constituents

列出具有可选限制参数的成分。

参数:

  • limit (可选):要返回的最大成分数(1-50,默认值:10)

Claude中的示例用法:

“列出前5个组成部分”

search_constituents

按文本条件搜索成分。

参数:

  • search_text (必填):要搜索的文本
  • search_field (可选):要搜索的字段(name, email_address, lookup_id)
  • strict_search (可选):是否执行严格搜索
  • limit (可选):返回的最大结果(1-50,默认值:10)

Claude中的示例用法:

“搜索名为‘Smith’的选民”

get_constituent

检索特定成分的详细信息。

参数:

  • id (必填):成员的系统ID

Claude中的示例用法:

“获取成员ID 12345的详细信息”

发展

运行服务器

npm start

项目结构

renxt-mcp/
├── server.js          # Main MCP server implementation
├── auth.js            # OAuth authentication flow
├── package.json       # Dependencies and scripts
├── .env              # Environment variables (not in repo)
├── tokens.json       # OAuth tokens (not in repo)
└── .gitignore        # Git ignore rules

API集成

服务器与以下Blackbaud RENXT API端点集成:

  • GET /constituent/v1/constituents -列出成分
  • GET /constituent/v1/constituents/{id} -获取组成详细信息
  • GET /constituent/v1/constituents/search -搜索成分

安全

  • 环境变量:敏感凭据存储在 .env 文件(未在git中跟踪)
  • 许可证管理:OAuth令牌过期时会自动刷新
  • 安全存储:令牌存储在本地 tokens.json (未在git中跟踪)

故障排除

服务器在Claude Desktop中显示为“已禁用”

  1. 确保 cwd Claude Desktop配置中的路径正确
  2. 使用验证Node.js路径 which node 并更新 command 领域
  3. 检查所有依赖项是否已安装 npm install
  4. 配置更改后重新启动Claude Desktop

身份验证问题

  1. 在中验证您的Blackbaud开发人员凭据 .env
  2. 确保您的重定向URI与Blackbaud应用程序中配置的URI匹配
  3. 重新运行身份验证: npm run auth

API错误

  1. 检查您的Blackbaud订阅密钥是否有效
  2. 在Blackbaud开发者控制台中验证您的API权限
  3. 确保令牌未过期(自动刷新应处理此问题)

贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature-name
  3. 进行更改并提交: git commit -m 'Add feature'
  4. 推到分支: git push origin feature-name
  5. 提交拉取请求

许可证

该项目根据ISC许可证获得许可。

支持

关于以下问题:


内置于❤️ 为使用Blackbaud Raiser Edge NXT的非营利社区提供服务。