CommonGrants Grant Seeker
This server provides read-only access to CommonGrants-compliant APIs for searching and retrieving grant opportunities across multiple sources.
List grant sources (
list_grant_sources): View all registered CommonGrants-compliant APIs the server can search (e.g., federal Simpler.Grants.gov, Pennsylvania, California).Search grant opportunities (
search_opportunities): Search across all sources simultaneously (fan-out) or target a specific source (federal,pa, orca). Supports:Full-text search queries (e.g., "workforce development")
Filtering by opportunity status (
open,forecasted,closed, orcustom; defaults toopenandforecasted)Configurable result limit of 1–25 per source (default: 5)
Get a specific grant opportunity (
get_opportunity): Fetch complete, SDK-validated details of a single grant opportunity by providing itsidandsource(federal,pa, orca).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CommonGrants Grant Seekerfind grants related to renewable energy"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CommonGrants MCP App
Find grant opportunities across federal and state funding sources by asking for them in plain language, right inside Claude or ChatGPT.
Instead of visiting each grant portal, running multiple searches, and manually combining the results, you describe what you're looking for — "find workforce development grants closing in the next 90 days" — and the assistant searches every source at once, then hands you a ranked shortlist you can click through.
What's included
Developers can reuse the shared grant service for search, retrieval, and shortlist assembly without starting an MCP host.
The app searches these funding sources:
Source | What it covers |
Simpler.Grants.gov | Federal grant opportunities from U.S. agencies |
Pennsylvania | State grant opportunities from the Commonwealth of PA |
California | State grant opportunities from California |
Washington — FundHub | State grant opportunities from Washington |
Maryland — Community Compass | State grant opportunities from Maryland |
Results are always labeled with the source they came from, and every opportunity links back to the grantmaker's own page so you can verify details and apply.
For a normal shortlist, the assistant starts with a focused search and evaluates whether the results provide enough relevant coverage. Five or more clearly relevant candidates are ordinarily enough for a non-exhaustive shortlist. It expands the search only when the results are insufficient, ambiguous, or clearly incomplete, then hands the selected references to the presentation tool, which loads their full details in parallel.
All of this data is public, so there's nothing to sign up for and no account to connect — you add the app once and start searching.
Related MCP server: Grants.gov MCP Server
Quickstart
The app is hosted, so installing it means pointing your AI assistant at one URL:
https://mcp.cg.a6lab.ai/mcpClaude
Open Claude in your browser or desktop app.
Go to Settings → Connectors.
Click Add custom connector.
Paste
https://mcp.cg.a6lab.ai/mcpas the remote MCP server URL, give it a name like CommonGrants, and click Add.Start a new chat and ask for grants. Claude will ask permission the first time it uses the app.
Anthropic's step-by-step guide, including the extra steps a Team or Enterprise owner needs to take before members can add connectors: Get started with custom connectors using remote MCP.
ChatGPT
ChatGPT calls these apps, and adding your own currently requires turning on developer mode first:
In ChatGPT, go to Settings → Security and login and turn on Developer mode.
Go to Settings → Plugins and click +.
Paste
https://mcp.cg.a6lab.ai/mcpas the server URL and create the app.Start a new chat and ask for grants.
OpenAI's guide: Developer mode and MCP apps in ChatGPT.
On a ChatGPT Business or Enterprise workspace, a workspace admin publishes the app once (Workspace Settings → Apps) and everyone else finds it in their app list — individual members don't need developer mode.
Other assistants
Any tool that supports remote MCP servers can use the same URL. See TECHNICAL.md for running the app locally or connecting it to other clients.
Things to try
Once it's connected, ask your assistant things like:
"What federal grants are open for rural broadband?"
"Find workforce development grants in Pennsylvania closing in the next 90 days."
"Compare the eligibility requirements for the top three, and tell me which ones a small nonprofit could actually apply for."
"Which of these have no cost-sharing requirement?"
The assistant searches, narrows things down over a few turns, and then presents a single shortlist you can review and expand.
Roadmap
More data sources. Any funder that publishes a CommonGrants-compliant API can be added without changing the app, so the plan is to keep growing the list of participating states and federal programs.
Award data. Today the app searches open opportunities. Adding historical award data would let you see who has been funded before, at what amounts, and by which programs — useful context for deciding whether an opportunity is worth pursuing.
Have a source you'd like to see added, or found something confusing? Please open an issue.
Documentation
TECHNICAL.md — how the app works: tools, source configuration, architecture, and hosting.
DEVELOPMENT.md — running and deploying it yourself.
CONTRIBUTING.md — how to contribute.
Licensed under MIT.
Available Tools
3 toolsget_opportunityGet grant opportunityARead-only
Get the full details of a specific grant opportunity by ID from one source.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The opportunity ID | |
| source | Yes | Which source the opportunity belongs to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=true, and the description's 'Get the full details' is consistent. The description adds the context that it returns full details beyond the annotations, which are adequate. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no fluff, clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two parameters, read-only, no output schema), the description is complete. It states what it does, the key parameters are covered, and sibling tools provide additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters having descriptions. The description's 'by ID from one source' maps to id and source but adds no additional meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'full details of a specific grant opportunity', specifying the scope 'by ID from one source'. This distinguishes it from siblings like list_grant_sources (which lists sources) and search_opportunities (which searches across opportunities).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use: when you have an ID and source and need full details. However, it does not explicitly state when not to use or mention alternatives like searching or listing. The sibling names provide context, but the description itself lacks explicit guidance on exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_grant_sourcesList grant sourcesARead-only
List the CommonGrants-compliant APIs this server can search.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds context that the output is specifically CommonGrants-compliant APIs, going beyond the annotation to clarify scope. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys all necessary information without excess. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is sufficient. It clearly defines the tool's action and output type, and the siblings provide context. openWorldHint=false is already in annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description does not need to add parameter info, and with zero parameters, baseline is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists 'CommonGrants-compliant APIs this server can search,' using a specific verb and resource. It distinguishes from siblings (get_opportunity, search_opportunities) which focus on opportunities, not grant sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used to discover available APIs before searching. While it does not explicitly state when to use vs alternatives, the purpose is clear and no exclusion is needed for such a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_opportunitiesSearch grant opportunitiesARead-only
Search for grant opportunities across CommonGrants sources.
Omit source to fan out across every source and get combined, labeled results.
Provide source (see list_grant_sources) to target one.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results per source | |
| query | No | Full-text search query, e.g. 'workforce development' | |
| source | No | Which source to query. Omit to search all. | |
| statuses | No | Filter by opportunity status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. Description adds that results are 'combined, labeled' when fanning out, providing useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences/paragraphs. Front-loaded: first sentence states core purpose with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema, description adequately covers multi-source behavior and parameter usage. Could mention return format, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. Description adds value by explaining the behavior of the 'source' parameter (fan-out vs targeting), which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Search' and resource 'grant opportunities across CommonGrants sources'. Distinguishes from sibling tools (get_opportunity, list_grant_sources) by indicating multi-source search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to omit 'source' to search all sources and when to provide it for targeting one. References list_grant_sources for available values, providing clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.0- First observed
get_opportunity - First observed
list_grant_sources - First observed
search_opportunities
TDQS
Scored across 3 tools
Each tool serves a distinct purpose: get_opportunity retrieves by ID, list_grant_sources enumerates available sources, and search_opportunities queries across sources. No confusion.
All tools follow a consistent verb_noun pattern with clear, action-oriented names (get, list, search).
Three tools is on the lower end but adequately covers the core workflow of listing sources, searching, and retrieving details. Slightly below the ideal 3-15 range but still reasonable for a focused server.
The tool surface covers essential grant-seeking operations. Minor gaps include lack of a dedicated list_all_opportunities tool, but search_opportunities without source effectively fills this role.
Maintenance
Related MCP Connectors
Grants.gov search and USAspending grant data. 4 MCP tools for grant discovery.
Public MCP server for discovering open jobs. Search, filter, and get application links.
An MCP server that provides congressional transcripts
Grants.gov MCP — open federal grant opportunities (free, no auth)
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that enables users to search for government grants based on keywords and view detailed information including funding, eligibility, and deadlines.18MIT
- FlicenseNot gradedqualityDmaintenanceModel Context Protocol (MCP) server that provides access to the Grants.gov API for searching and retrieving federal grant opportunities.-
- FlicenseNot gradedqualityCmaintenanceA unified MCP server providing programmatic access to three major academic research APIs: Semantic Scholar, OpenAlex, and PubMed.2-
- FlicenseNot gradedqualityCmaintenanceA Python MCP server for querying grant applications and previewing or committing scoped reviewer reassignments.-