会员自动化管理服务

AAIF PMO Agent — MCP Server 是一个自动化管理Linux Foundation AAIF会员入职流程的服务,提供49个工具覆盖12个领域,包括会员等级验证、合规审查、邮件列表配置、联系人管理、日历调度、工作组注册等。

  • by linuxfoundation
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 linuxfoundation/aaif-mcp-server

使用说明

AAIF PMO代理——MCP服务器

跨12个领域的49个工具,用于自动化Linux Foundation AAIF成员入职流程——层验证、合规性筛选、邮件列表配置、联系人管理、日历安排、工作组注册、选举、新闻稿、品牌验证、续订情报和D1-D5检查表编排。

同一台MCP服务器为多个客户端供电:

客户 受众 它如何连接
LFX PCC PMO员工(日常运营) PCC运营仪表板中的MCP客户端
协作插件 高管和领导力(监督、状态、特别问题) Claude Desktop的“协作”选项卡的拖放插件
对讲机翅片 会员(自助入职、常见问题解答) 面向会员的聊天机器人的MCP数据连接器
鹅 开发人员(可选) 用于本地开发的开源MCP客户端

沙盒模式:此服务器完全在 模拟数据 默认情况下。演示所有48个工具不需要后端凭据或API访问权限。当环境变量未设置时,每个连接器都会自动回退到模拟。

快速入门(5分钟)

1.克隆并安装

git clone git@github.com:linuxfoundation/aaif-mcp-server.git
cd aaif-mcp-server
pip install -e ".[test]"

2.添加到克劳德桌面

打开 设置>开发人员>编辑配置 在Claude Desktop中,然后将此添加到 mcpServers:

{
  "mcpServers": {
    "aaif-onboarding": {
      "command": "python",
      "args": ["-m", "aaif_mcp_server.server"],
      "cwd": "/path/to/aaif-mcp-server/src"
    }
  }
}

替代 如果你跑了 pip install -e .:

{
  "mcpServers": {
    "aaif-onboarding": {
      "command": "aaif-mcp-server"
    }
  }
}

3.重新启动克劳德桌面

重新启动后,您应该看到49个可用工具。服务器运行 模拟数据 默认情况下,测试不需要凭据。

验证它是否正常工作

在Claude Desktop中,尝试:

  • “验证Hitachi的会员级别”→ validate_membership_tier
  • “列出彭博社的联系人”→ list_contacts
  • “让Sam Altman加入代理商务工作组”→ enroll_in_working_group
  • “检查代理商务主席的选举状态”→ get_election_status
  • “Natoma的流失风险是什么?”→ predict_churn_risk
  • “起草OpenAI加入AAIF的新闻稿”→ draft_press_release
  • “获取续订仪表板”→ get_renewal_dashboard
  • “运行OpenAI Sam Altman的入职检查表”→ run_onboarding_checklist

运行测试

pytest tests/ -v
# 176 tests pass (28 pre-existing failures in tests without registry init)

工具(12个域中的49个)

域1:邮件列表设置(4个工具)

工具 说明
provision_mailing_lists 将联系人添加到相应级别的列表中(dry_run默认)
remove_from_mailing_lists 从所有列表中删除联系人
check_mailing_list_membership 检查订阅状态
remediate_mailing_lists 查找并修复基础范围内的列表差距

域2:日历和会议管理(3个工具)

工具 说明
provision_calendar_invites 根据级别/角色发送日历邀请
update_meeting_schedule 更新工作组定期会议时间/链接
get_upcoming_meetings 获取联系人即将召开的会议

领域3:合规与制裁(4种工具)

工具 说明
check_sanctions 查询SFDC中笛卡尔筛选状态
check_tax_exempt_status 验证501(c)(6)的合规性
get_compliance_report 完整合规性摘要
flag_compliance_issue 创建合规票以供人工审查

域4:层验证(3个工具)

工具 说明
validate_membership_tier 从SFDC查找组织层
check_tier_entitlements 某一层级的退货权利矩阵
detect_tier_anomalies 扫描所有成员的访问不匹配

域5:联系人角色管理(5个工具)

工具 说明
list_contacts 列出所有具有角色和下游访问权限的联系人
add_contact 添加联系人,触发下游配置
update_contact_role 改变角色,展示下游效应
remove_contact 删除联系人,触发下机
transfer_voting_rights 在联系人之间转移投票权

域6:工作组注册(5个工具)

工具 说明
enroll_in_working_group 跨Groups.io+Discord+GitHub+日历注册
leave_working_group 从所有系统的WG中删除
list_available_working_groups 列出具有注册状态的工作组
get_wg_members 获取工作组成员名册
check_wg_eligibility 检查工作组的级别/角色资格

领域7:选举和投票操作(5个工具)

工具 说明
create_election 在LFX平台上创建工作组主席选举
validate_candidate_eligibility 检查候选人的先决条件
check_voter_eligibility 检查投票联系人状态
get_election_status 获取选举时间表、候选人、选票
diagnose_ballot_access 诊断所有阻碍投票的障碍

领域8:新闻稿起草(3个工具)

工具 说明
draft_press_release 根据模板+组织数据生成新闻稿
get_press_release_status 检查审批工作流进度
list_press_release_templates 列出可用的PR模板

领域9:徽标和品牌验证(3个工具)

工具 说明
validate_logo 根据品牌指南验证徽标
get_brand_guidelines 检索品牌规格和要求
request_logo_upload 生成用于徽标提交的安全上传URL

领域10:入职呼叫调度(3个工具)

工具 说明
schedule_onboarding_call 安排与联系人和LF员工的通话
reschedule_onboarding_call 重新安排现有通话
get_onboarding_call_status 检查通话状态(已安排/待处理/已完成)

领域11:更新和参与智能(5个工具)

工具 说明
get_renewal_status 合同续签时间表和阶段
get_engagement_score 计算参与度得分(0-100)
predict_churn_risk 预测流失风险(0-100)
get_renewal_dashboard 全基金会更新管道视图
trigger_renewal_outreach 使用电子邮件模板生成外展计划

领域12:编排(5个工具)

工具 说明
run_onboarding_checklist 执行D1-D5入职流程
get_onboarding_status 检查检查表进度
reconcile_silos 比较SFDC、Groups.io和SSO
run_offboarding_checklist 出发时移除通道
get_silo_health 全基金会同步健康评分

生产所需的API访问权限

此服务器连接到 7外部系统在沙盒模式下,当环境变量未设置时,所有连接器都会自动回退到模拟数据。

连接器状态

# 连接器 服务 授权类型 沙盒 生产
1 赛富时 CRM(帐户、联系人) OAuth 2.0 模拟 已实现
2 Groups.io 邮件列表 承载令牌 模拟 已实现
3 PIS集团.io 通过LFX PIS发送邮件列表 X-ACL标题 模拟 已构建(等待信任)
4 PIS会议 LFX会议(支持缩放) X-ACL标题 模拟 已构建(等待信任)
5 PIS GitHub GitHub组织/仓库跟踪 X-ACL头 模拟 构建(只读)
6 Google 日历 会议日程安排(传统) 服务帐户JWT 模拟 被PIS会议取代
7 Discord 的中文翻译是“不和谐”或“纷争”。 社区频道/角色 机器人令牌 模拟 特技
8 GitHub 回购合作者访问 PAT(承载者) 模拟 特技
9 LFX平台 LFID,选举,投票 API密钥 模拟 存根
10 集客 电子邮件模板,外展 私人应用密钥 模拟 特技

环境变量

# 0. PIS (Project Infrastructure Service) — X-ACL header auth
#    API: V2 — Groups.io, LFX Meeting, GitHub connectors
#    Used by: Mailing List Provisioning, Calendar/Meeting Mgmt, WG Enrollment, Offboarding
PIS_ACL_TOKEN=<x-acl-token-from-lf-sso-or-m2m>
PIS_USERNAME=<lfid-username>
PIS_PROJECT_ID=lfZA9uadMdkwBqqHsj

# 1. Salesforce CRM — OAuth 2.0 username-password flow
#    API: REST v59.0 — SOQL queries on Account, Contact objects
#    Used by: Tier Validation, Compliance, Contact Roles, Orchestrator
SFDC_INSTANCE_URL=https://aaif--sandbox.my.salesforce.com
SFDC_CLIENT_ID=<connected-app-consumer-key>
SFDC_CLIENT_SECRET=<connected-app-consumer-secret>
SFDC_USERNAME=<api-user-email>
SFDC_PASSWORD=<password+security-token>

# 2. Groups.io — Bearer token
#    API: v1 — directadd, removemember, getmembers, getgroups
#    Used by: Mailing List Provisioning, WG Enrollment
GROUPSIO_API_TOKEN=<bearer-token>
GROUPSIO_ORG_ID=aaif

# 3. Google Calendar — Service account JWT
#    API: Calendar v3 — events.insert, events.list, events.patch, events.delete
#    Used by: Calendar Management, Call Scheduling, WG Enrollment
GOOGLE_CALENDAR_CREDENTIALS=</path/to/service-account.json>
GOOGLE_CALENDAR_ADMIN_EMAIL=<admin@linuxfoundation.org>

# 4. Discord — Bot token
#    API: Bot API v10 — guild member roles, channel access
#    Used by: WG Enrollment (channel/role provisioning)
DISCORD_BOT_TOKEN=<bot-token>
DISCORD_SERVER_ID=<guild-id>

# 5. GitHub — Personal access token
#    API: REST v3 — repos collaborators (add/remove/list)
#    Used by: WG Enrollment (repo access)
GITHUB_TOKEN=<pat-with-repo-scope>
GITHUB_ORG=aaif

# 6. LFX Platform — API key
#    API: OpenProfile v1 — elections, LFID verification, ballots
#    Used by: Elections & Voting, LFID checks
LFX_API_URL=https://api.lfx.platform/v1
LFX_API_KEY=<api-key>

# 7. HubSpot — Private app API key
#    API: v3 — transactional email, templates
#    Used by: Press Release distribution, Renewal Outreach
HUBSPOT_API_KEY=<private-app-key>

API连接器操作

赛富时 (REST v59.0):

  • POST /services/oauth2/token --身份验证
  • GET /services/data/v59.0/query?q={SOQL} --查询帐户、联系人
  • 自定义字段: Membership_Tier__c, Membership_Status__c, Contract_Signed_Date__c, LFID__c

Groups.io (v1):

  • POST /directadd --将成员添加到组
  • POST /removemember --从组中删除成员
  • GET /getmembers --列出组成员(分页)
  • GET /getmember --检查单一会员资格

Google 日历 (v3):

  • POST /calendars/{id}/events --创建活动/邀请
  • GET /calendars/{id}/events --列出事件
  • PATCH /calendars/{id}/events/{eventId} --更新事件
  • DELETE /calendars/{id}/events/{eventId} --取消事件

Discord 的中文翻译是“不和谐”或“纷争”。 (Bot API v10):

  • PUT /guilds/{id}/members/{userId}/roles/{roleId} --添加角色
  • DELETE /guilds/{id}/members/{userId}/roles/{roleId} --删除角色
  • GET /guilds/{id}/members --列出成员

GitHub (REST v3):

  • PUT /repos/{owner}/{repo}/collaborators/{username} --添加合作者
  • DELETE /repos/{owner}/{repo}/collaborators/{username} --删除合作者
  • GET /repos/{owner}/{repo}/collaborators --列出合作者

LFX平台 (v1):

  • POST /elections --创建选举
  • GET /elections/{id} --获得选举资格
  • GET /contacts/{id}/lfid --验证LFID
  • GET /elections/{id}/ballot/{contactId} --检查投票状态

集客 (v3):

  • POST /transactional/email --从模板发送电子邮件
  • GET /marketing/emails/templates --列表模板

建筑

src/aaif_mcp_server/
├── server.py                  # MCP server (FastMCP) — registers 48 tools, 7 resources, 3 prompts
├── config.py                  # Mock data + provisioning rules + checklist templates
├── models.py                  # Pydantic models (MemberOrg, Contact, SanctionsResult, etc.)
├── connectors/
│   ├── base.py                # Abstract base classes (BaseConnector, BaseCRMConnector, etc.)
│   ├── registry.py            # Connector registry (singleton init, env-var toggled PIS/mock)
│   ├── pis_client.py          # Shared PIS HTTP client (X-ACL auth, retry, base URL)
│   ├── pis_groupsio.py        # PIS Groups.io connector (mailing list CRUD via PIS V2)
│   ├── pis_meeting.py         # PIS Meeting connector (LFX Meeting V2 / zoomV2 API)
│   ├── pis_github.py          # PIS GitHub connector (org/repo tracking via PIS V2)
│   ├── salesforce.py          # Salesforce REST API v59 (auto-falls back to mock)
│   ├── groupsio.py            # Groups.io API v1 (legacy — auto-falls back to mock)
│   ├── calendar.py            # Google Calendar API v3 (legacy — replaced by PIS Meeting)
│   ├── discord.py             # Discord Bot API v10 (mock)
│   ├── github_connector.py    # GitHub REST API v3 (mock)
│   ├── lfx_platform.py        # LFX Platform / OpenProfile API (mock)
│   └── hubspot.py             # HubSpot Marketing API (mock)
├── tools/
│   ├── tier_validation.py     # 3 tools: validate, entitlements, anomalies
│   ├── compliance.py          # 4 tools: sanctions, tax-exempt, report, flag
│   ├── mailing_list.py        # 4 tools: provision, remove, check, remediate
│   ├── orchestrator.py        # 5 tools: onboard, status, reconcile, offboard, health
│   ├── contact_roles.py       # 5 tools: list, add, update, remove, transfer
│   ├── calendar.py            # 3 tools: provision invites, update schedule, upcoming
│   ├── wg_enrollment.py       # 5 tools: enroll, leave, list, members, eligibility
│   ├── call_scheduling.py     # 3 tools: schedule, reschedule, status
│   ├── elections.py           # 5 tools: create, candidate, voter, status, diagnose
│   ├── press_release.py       # 3 tools: draft, status, templates
│   ├── logo_brand.py          # 3 tools: validate, guidelines, upload
│   └── renewal_intelligence.py # 5 tools: renewal, engagement, churn, dashboard, outreach
└── resources/
    ├── member.py              # member:// resources (profiles, list)
    ├── checklist.py           # checklist:// resources (D1-D5 templates)
    └── rules.py               # rules:// resources (entitlements, provisioning, WGs)

模拟成员(用于测试)

组织 层级 联系人
有限公司日立 黄金 山田武、田中由纪
彭博社LP 黄金 桑巴夫·科塔里,Ania Musial
纳托玛 银 帕雷什·巴亚
iProov 西尔弗 安德鲁·巴德
OpenAI 白金级 Sam Altman

许可证

Apache 2.0