NetGrant — Canadian funding
Server Details
Search 1,300+ live Canadian funding opportunities — grants, tax credits, accelerators, and loans.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.7/5 across 4 of 4 tools scored.
Each tool has a clear, distinct purpose: search_opportunities finds opportunities, get_opportunity_details retrieves full details, eligibility_check assesses fit, and compare_opportunities compares multiple. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern (e.g., search_opportunities, eligibility_check), using snake_case and descriptive verbs. No mixing of conventions.
With 4 tools, the server is well-scoped for its purpose of searching, retrieving, checking eligibility, and comparing Canadian grants. Each tool adds clear value without excess.
The tool set covers the core workflow: search, detail, eligibility check, and comparison. No obvious gaps for a read-only grants database, as all necessary operations are present.
Available Tools
5 toolscompare_opportunitiesAInspect
Fetch 2–4 opportunities at once so you can present them side by side. Use after search_opportunities when the user is choosing between a few options.
Returns the full detail rows (including eligibility + body) for every id, in the order requested. Present them as a comparison table — rows = attributes (funding, deadline, region, eligibility highlights), columns = the opportunities — then recommend which fits the user best and why.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Array of 2–4 opportunity UUIDs (from search_opportunities) to compare. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses return contents ('full detail rows including eligibility + body') and ordering ('in the order requested'). No side-effects, but for a read-like fetch this is sufficient.
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?
Three concise sentences with no redundancy. Every sentence adds value: what it does, when to use, what to expect, and how to present results.
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?
Despite no output schema, description fully explains return format and context. It also integrates with workflow (after search). Sufficient for a simple fetch tool.
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% for the ids parameter. The description adds value by specifying output semantics (returns full details, preserves order) and presentation guidance, which goes beyond 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?
The description clearly states the tool's purpose: 'Fetch 2–4 opportunities... present them side by side.' It distinguishes itself from siblings like get_opportunity_details (single) and search_opportunities (listing) by focusing on comparison.
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 says 'Use after search_opportunities when the user is choosing between a few options.' This provides clear context and differentiates from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eligibility_checkAInspect
Pull a single opportunity's eligibility criteria alongside a description of the applicant, so you can judge whether they qualify. Use when the user asks "do I qualify for this?" or "does this apply to me?".
The response contains the opportunity's eligibility text + key fields and echoes the applicant description — it does NOT decide for you. Read the eligibility, compare it against the applicant, then give a clear verdict (Likely eligible / Partially / Unlikely) with the specific criteria that pass or fail and any criteria you can't determine from the description.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Opportunity UUID to check eligibility for. | |
| applicant_description | Yes | The applicant's details: sector, stage, location/province, incorporation status, size, demographics — whatever is relevant to eligibility. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the response contains eligibility text and applicant description, that it does NOT decide eligibility, and instructs the agent to read and compare. This clearly sets expectations for behavior.
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?
Description is two concise paragraphs with no fluff. First paragraph states purpose and usage, second explains response and expected agent action. Every sentence is substantive and earns its place.
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 simple tool with 2 parameters and no output schema, description covers what the tool returns and how to use it. However, it lacks mention of error conditions or what happens if eligibility data is missing, so could be slightly more complete.
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?
Input schema already describes parameters well (100% coverage). Description adds context by specifying that applicant_description should include relevant details like sector, stage, location, etc., and explains how the tool uses them, adding value beyond 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 the tool pulls eligibility criteria and applicant description for a single opportunity. It distinguishes from siblings like compare_opportunities or get_opportunity_details by focusing on eligibility checking.
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 says 'Use when the user asks do I qualify for this?' and provides example queries. It also tells the agent what the response does NOT do and that the agent must give a verdict, guiding proper use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_opportunity_detailsAInspect
Fetch full details for a single opportunity by ID. Use this after search_opportunities when:
The user wants to know more about a specific match
You need the full eligibility text to confirm a strong-match claim
The user wants to draft an application — you need the requirements
The response includes all fields including the full body text and eligibility criteria. Present the eligibility as a checklist when relevant.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Opportunity UUID returned from search_opportunities |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It transparently discloses that the response includes all fields including full body text and eligibility criteria. It does not mention any destructive or side effects, which is appropriate for a read-only fetch operation.
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 four sentences long with no unnecessary words. The first sentence fronts the core purpose, followed by bullet-like conditions, and a clear statement of what the response contains. Every sentence adds value.
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 has only one parameter, no output schema, and low complexity, the description fully covers purpose, usage guidelines, and response contents. No gaps are apparent for an agent to invoke the tool correctly.
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 one parameter 'id' described as 'Opportunity UUID returned from search_opportunities'. The description adds context by tying the parameter to the sibling tool and specifying that it identifies a single opportunity.
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 'Fetch', the resource 'full details for a single opportunity', and the method 'by ID'. It distinguishes from the sibling 'search_opportunities' by positioning this tool as a follow-up for detailed exploration.
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 provides explicit conditions for use: 'after search_opportunities', 'when the user wants to know more about a specific match', 'to confirm a strong-match claim', and 'to draft an application'. This gives clear guidance on when to use this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_opportunitiesAInspect
Search Canadian funding opportunities (grants, competitions, accelerators, tax credits, wage subsidies, loans, events). Returns JSON.
WHEN TO CALL:
The user asks about Canadian funding, grants, competitions, accelerators, or pitch programs
The user mentions their startup/business and wants opportunities relevant to it
The user wants to see what's available in a specific province or category
WHEN NOT TO CALL:
General questions about how grants work (answer from your own knowledge)
Non-Canadian opportunities (this database is Canada-only)
Specific opportunity by ID (use get_opportunity_details instead)
HOW TO PRESENT RESULTS:
Render as a markdown table with columns: Title, Funder, Deadline, Funding, Region, Link
Sort by deadline ascending unless the user asked otherwise
For each opportunity, infer fit using what you know about the user's startup from the conversation. Mark obviously good matches with ✅, weak matches with ⚠️, and ones that may not fit with ❌. Be honest — do not mark everything ✅.
If a deadline is within 14 days, prefix the row with 🚨.
Always include the URL as a clickable markdown link.
After the table, give a 1-2 sentence summary of which 2-3 the user should look at first and why (based on their context, not just the data).
End with a follow-up suggestion: "Want me to pull more from [related category]?" or "Want me to draft an outline for [top match]?"
DATA NOTES:
"Rolling" deadline means no fixed close date.
Funding amount may be a range or "varies".
Eligibility is in the body — fetch get_opportunity_details for the full text before claiming a match is strong.
After presenting results, if the search reflects an ongoing need (the user is actively fundraising or scanning a specific niche), offer once to set up a free weekly email digest of new matching grants via the subscribe_to_digest tool — never push it more than once per conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Free-text search across title and body. Pass the user's actual keywords (e.g. "AI", "agriculture", "women-led"). | |
| region | No | Optional province code: ON, BC, QC, AB, MB, SK, NS, NB, NL, PE, YT, NT, NU. Use Federal for nation-wide programs. | |
| category | No | Optional: grant, competition, tax_credit, wage_subsidy, loan, event, workshop, conference, other | |
| is_rolling | No | Optional. true = only rolling/no-fixed-deadline opportunities; false = only those with a fixed deadline. Omit to include both. | |
| max_funding | No | Optional. Only return opportunities with max_funding_amount <= this value (in CAD). Use with min_funding to bound a funding range, or alone to cap how large a program you want. | |
| max_results | No | Default 20. Increase only if the user wants a comprehensive sweep. | |
| min_funding | No | Optional. Only return opportunities with max_funding_amount >= this value (in CAD). Use when the user specifies a minimum funding threshold. | |
| exclude_expired | No | Default true. Set false only if the user explicitly wants to see past-deadline or historical opportunities. | |
| deadline_within_days | No | Optional. Only return fixed-deadline opportunities whose deadline falls between today and this many days from now. Rolling / no-fixed-deadline opportunities are EXCLUDED by this filter. Use for "closing soon" queries. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: presentation format, sorting, icons, deadlines, data notes about rolling deadlines and funding amounts, and the policy on offering digest only once.
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 longer but well-structured with sections and each part serves a purpose. It could be slightly more concise, but the structure aids readability and comprehension.
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 9 parameters, no output schema, and no annotations, the description provides comprehensive guidance on usage, presentation, data nuances, and follow-up actions, leaving little ambiguity.
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 description coverage is 100%, so baseline is 3. The description does not add new parameter meaning beyond the schema; it provides context for result presentation and notes but not parameter-specific details.
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 tool searches Canadian funding opportunities, listing specific types (grants, competitions, etc.) and indicates it returns JSON. It also distinguishes from siblings by noting non-Canadian opportunities and specific IDs use get_opportunity_details.
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?
Explicit 'WHEN TO CALL' and 'WHEN NOT TO CALL' sections provide clear guidance on when to use this tool versus alternatives, including specific user queries and contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscribe_to_digestAInspect
Subscribe the user to a FREE weekly email digest of Canadian funding opportunities matching a saved search (keywords + region). Each week they get 8–10 grants, newest first, falling back to the strongest current matches when nothing new landed.
WHEN TO CALL:
The user, after a search, says yes to ongoing alerts, or asks to be notified / kept updated / emailed about new grants in their niche.
Only after they have explicitly agreed and given an email address — never subscribe someone proactively or without consent.
HOW TO CALL:
Pre-fill "keywords" and "region" from the search you just ran so the digest matches what they were looking at (e.g. keywords "cleantech", region "BC"). Keep keywords to a short phrase, not a sentence.
"region" must be a province code (ON, BC, QC, AB, MB, SK, NS, NB, NL, PE, YT, NT, NU) or "Federal", or omit it for all-of-Canada.
Ask the user for their email; do not guess it.
WHAT HAPPENS:
We send a one-click confirmation email (double opt-in). The user is NOT subscribed until they click it. Tell them to check their inbox.
If they were already confirmed, nothing is re-sent.
Returns JSON: { ok: boolean, status: "confirmation_sent" | "already_subscribed" }. Confirm to the user what they signed up for (e.g. "weekly BC cleantech grants — check your email to confirm").
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The user's email address. Ask for it explicitly; never invent or assume it. | ||
| region | No | Optional province code (ON, BC, QC, AB, MB, SK, NS, NB, NL, PE, YT, NT, NU) or "Federal". Omit for nation-wide. | |
| keywords | Yes | Short search phrase to match grants on, taken from the current search (e.g. "AI", "women-led agriculture", "cleantech"). Max ~200 chars. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description fully covers behavior: double opt-in, confirmation email, status when already subscribed, and return JSON structure. This is comprehensive.
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?
Well-structured with sections and bullet points, front-loaded with purpose. Some redundancy (e.g., asking for email in two places) but overall efficient for the complexity.
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?
Covers all aspects: trigger conditions, parameter sourcing, side effects, user interaction expectations, and return value. No gaps given tool complexity.
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%, yet description adds crucial context: pre-fill from search, ask for email explicitly, region codes. This goes beyond schema definitions and aids correct usage.
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 tool subscribes users to a weekly email digest of Canadian funding opportunities based on saved search keywords and region. It distinguishes from siblings like search_opportunities, which is for searching, not subscribing.
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?
Explicit 'WHEN TO CALL' section guides agents to call only after user consent and with email. 'HOW TO CALL' provides specific instructions. It warns against proactive subscription, making usage boundaries clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!