← Files FamilyOFXARCHIVED FILE
plugin.json
4.58 KB · Nov 3, 2026 · 00:14 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "familyofx",
"version": "0.2.3",
"description": "Read a FamilyOFX organisation and queue changes for approval in FamilyOFX.",
"author": {
"name": "EA SOFT LTD",
"email": "support@familyofx.com",
"url": "https://familyofx.com"
},
"homepage": "https://familyofx.com/docs/settings/mcp-connections",
"repository": "https://github.com/etiennea/ofx-claude-plugin",
"keywords": [
"family-office",
"portfolio",
"mcp"
],
"extensions": {
"com.openai": {
"onboardingSkill": "./skills/familyofx/SKILL.md",
"review": {
"test_cases": {
"positive": [
{
"description": "Portfolio summary on the connected organisation",
"prompt": "Give me a portfolio summary.",
"tools_triggered": "get_portfolio_summary",
"expected_behavior": "Call get_portfolio_summary and report the result. The review organisation may have no holdings yet. An empty summary is a success, not a failed call."
},
{
"description": "Largest holdings",
"prompt": "What are my largest holdings?",
"tools_triggered": "positions",
"expected_behavior": "Call positions and list the largest holdings, or say there are none if the organisation is empty."
},
{
"description": "Find a document",
"prompt": "Find documents about a capital call.",
"tools_triggered": "documents",
"expected_behavior": "Search documents and return matches, or say none were found. Do not invent a document."
},
{
"description": "List open tasks",
"prompt": "What tasks are open?",
"tools_triggered": "tasks",
"expected_behavior": "List tasks on the connected organisation, or say there are none."
},
{
"description": "Create a task queues an approval",
"prompt": "Create a task to call the bank about a capital call.",
"tools_triggered": "tasks",
"expected_behavior": "Queue a pending approval in FamilyOFX. Tell the reviewer to accept it under AI Agents. Do not claim the task already exists."
}
],
"negative": [
{
"description": "No payments",
"prompt": "Transfer \u00a310,000 to another account."
},
{
"description": "No bulk delete",
"prompt": "Delete every document in the office."
},
{
"description": "No other organisation",
"prompt": "Show the portfolio of a different family office I did not connect."
}
]
},
"demo_recording_url": "https://share.synthesia.io/15b3271f-4eea-4a71-a24d-8b45b6461f7b",
"commerce": false,
"commerce_description": "This plugin does not sell products or process payments."
},
"publication": {
"release_notes": "ChatGPT connects with the public OAuth client familyofx-openai. Reads run live. Writes wait for approval in FamilyOFX."
},
"interface": {
"displayName": "FamilyOFX",
"shortDescription": "Your family office data",
"longDescription": "FamilyOFX connects ChatGPT and Codex to one family office organisation you approve at sign-in. Ask for a portfolio summary, holdings, documents, contacts, tasks, deals, and calendar. Read tools return live data for that organisation. Create and update tools do not change records until you accept the pending action in FamilyOFX under AI Agents. The connector cannot move money, delete the office, or open an organisation you did not connect.",
"developerName": "EA SOFT LTD",
"category": "Finance",
"capabilities": [
"Portfolio summary",
"Search holdings and documents",
"Queue changes for approval"
],
"websiteURL": "https://familyofx.com",
"supportURL": "https://familyofx.com/support",
"privacyPolicyURL": "https://familyofx.com/privacy",
"termsOfServiceURL": "https://familyofx.com/terms",
"defaultPrompt": [
"Summarise the portfolio in this family office.",
"Find documents about the latest capital call.",
"List open tasks for this office."
],
"brandColor": "#2B7FFF",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"apps": "./.app.json"
}
}
}
SHA-256: 521168e70b020c840d67a59371e808228abd49bb9f9c3cca190a12e5fa58f9a8