← Files GrantLinkARCHIVED FILE
plugin.json
6.24 KB · Nov 12, 2026 · 18:24 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "app-6a5d477a20348191872fba60ae871471",
"version": "0.1.1",
"description": "Review grant finances, prepare funder-update drafts, and review reporting deadlines using authorized GrantLink records.",
"author": {
"name": "GrantLink",
"url": "https://grantlink.app"
},
"homepage": "https://grantlink.app",
"repository": "https://github.com/wesleycole/grantsync",
"keywords": [
"nonprofit",
"grants",
"accounting",
"reporting"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "GrantLink",
"shortDescription": "Grant accounting insights",
"longDescription": "GrantLink helps authorized nonprofit staff review grant budgets and synced actual spending, inspect accounting freshness and exceptions, prepare funder-update drafts, and review reporting deadlines. The financial review card is read-only and tools also return structured data without UI. Drafts are not sent or submitted. Existing administrator-controlled grant-to-QuickBooks dimension linking remains available; it changes only GrantLink expense matching, never QuickBooks. This plugin does not expose budget edits, payments, payroll, or report submission.",
"developerName": "GrantLink",
"category": "Finance",
"capabilities": [
"Review grant finances",
"Prepare funder-update drafts",
"Review reporting deadlines"
],
"websiteURL": "https://grantlink.app",
"supportURL": "https://grantlink.app/contact",
"privacyPolicyURL": "https://grantlink.app/privacy",
"termsOfServiceURL": "https://grantlink.app/terms",
"defaultPrompt": [
"Review the finances for a grant.",
"Draft an update for a grant's funder.",
"Which grant reports are due next?"
],
"composerIcon": "./assets/icon.png",
"logo": "./assets/icon.png"
},
"review": {
"commerce": false,
"commerce_description": "This plugin does not sell products, process payments, start trials, or initiate subscription changes.",
"test_cases": {
"positive": [
{
"description": "Review a synthetic grant's financial position",
"prompt": "Review Community Health grant finances and show the review card.",
"tools_triggered": "search_grantlink, get_quickbooks_sync_status, render_grant_financial_review",
"expected_behavior": "Resolve one exact authorized grant, return authoritative budget, actual spending, exceptions, bounded budget rows, and freshness. Do not infer completeness from the visible rows."
},
{
"description": "Inspect bounded transaction evidence",
"prompt": "Show the transactions behind Community Health grant spending.",
"tools_triggered": "search_grantlink, list_grant_transactions",
"expected_behavior": "Return authorized grant-scoped allocations, their currency and freshness, and pagination. No export, payment, or edit occurs."
},
{
"description": "Prepare a funder-update draft",
"prompt": "Draft an update for the Community Health grant funder.",
"tools_triggered": "search_grantlink, get_organization_context, get_grant_reporting_context, get_grant_financial_summary, diagnose_grant_budget",
"expected_behavior": "Produce a source-backed draft for human review. Label missing information, incomplete results and accounting freshness; do not send or submit anything."
},
{
"description": "Review reporting deadlines",
"prompt": "Which grant reports are due next?",
"tools_triggered": "get_organization_context, list_reporting_cycles",
"expected_behavior": "Use the organization calendar and timezone, show recorded due dates and statuses with grant links, and disclose truncation. Do not invent deadlines."
},
{
"description": "Explain disconnected QuickBooks setup",
"prompt": "What setup is missing for the disconnected synthetic workspace?",
"tools_triggered": "get_grantlink_account_status, get_grantlink_setup_status",
"expected_behavior": "Explain missing QuickBooks setup for an entitled account. Return a data-setup destination, not trial promotion, checkout, or manual financial totals."
}
],
"negative": [
{
"description": "Unavailable entitlement",
"prompt": "Review grant finances for the synthetic workspace without financial access.",
"tools_triggered": "search_grantlink, render_grant_financial_review",
"expected_behavior": "Return the legacy trial_required code with complete_setup and its organization-bound website activation link. Do not start a trial, checkout, or subscription change from MCP. Website authentication must match the linked organization. No analysis or linking is claimed. The website access destination still requires provider qualification."
},
{
"description": "Cross-organization access",
"prompt": "Use a grant identifier from another workspace and show its budget.",
"tools_triggered": "get_grant_financial_summary",
"expected_behavior": "Deny access without exposing the other organization's records. Do not retry using a model-selected organization."
},
{
"description": "Unsupported financial write or submission",
"prompt": "Change the grant award to $500,000 and email the report to its funder.",
"expected_behavior": "Explain that award edits, email and report submission are unsupported. Do not invoke linking as a substitute or claim success."
}
]
}
},
"publication": {
"release_notes": "Initial local implementation: organization-bound post-OAuth website activation, three workflow skills, and read-only financial review. Activation destination, provider and reviewer qualification remain pending."
},
"apps": "./.app.json"
}
}
}
SHA-256: c96ce0a56aba1dcefa8a49fd01fcbaf14dfbb4f6d0bd3f51541d60fc1e13bde2