FundingLandscape
Was dieses MCP kann
Searches grants, fellowships, foundations, government contracts, procurement opportunities, and funding deadlines, with saved searches and email alerts.
Tools
Eingabeschema
{'type': 'object', 'required': ['queries'], 'properties': {'since': {'type': 'string', 'description': 'Stateless alternative to posted_within_days/new_within_days: ISO 8601 instant. Only opportunities ingested at/after this instant.'}, 'offset': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Number of results to skip for pagination (default: 0). Use with max_results to page through large result sets. Example: offset=100 with max_results=100 returns results 101-200.'}, 'source': {'type': 'string', 'description': 'Filter every batch sub-query to a specific source/domain, e.g. "grants.gov" or "deq.nc.gov".'}, 'queries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'minItems': 1, 'description': 'Array of 2-5 search queries to run in parallel. Example for clean energy: ["renewable energy grants", "solar wind funding", "clean energy nonprofit", "sustainability grants", "green technology funding"]'}, 'max_results': {'type': 'number', 'default': 10, 'minimum': 1, 'description': 'Maximum opportunities to return (default: 10, max: 100). Token cost guide: 10 results ~4KB, 25 results ~10KB, 50 results ~20KB, 100 results ~40KB.'}, 'detail_level': {'enum': ['minimal', 'compact', 'full'], 'type': 'string', 'default': 'compact', 'description': 'Controls response verbosity. minimal (~120 bytes/result): id, title, org, deadline, url, qualityScore - best for scanning 50+ results. compact (~400 bytes/result, DEFAULT): adds snippet, category, status, deadlineType, daysUntilDeadline, deadlineLabel, and lastRoundClosedAt - good for recommendations. full (~1.5KB/result): everything including eligibility, amounts - only use with max_results <= 10.'}, 'user_context': {'type': 'object', 'properties': {'location': {'type': 'string', 'description': 'State code or "nationwide"'}, 'organization_type': {'enum': ['nonprofit', 'startup', 'small_business', 'university', 'government', 'individual'], 'type': 'string', 'description': 'Common natural-language phrasing (e.g. "501(c)(3) nonprofit") is also parsed; unparseable values are ignored with an explicit note in the response.'}}}, 'grants_filters': {'type': 'object', 'properties': {'cfda': {'type': 'string', 'description': 'CFDA number (e.g., "10.001")'}, 'agency_code': {'type': 'string', 'description': 'Grants.gov agency code'}}, 'description': 'Grants.gov specific filters'}, 'new_within_days': {'type': 'number', 'description': 'Backwards-compatible alias for posted_within_days. Only opportunities ingested (added by us) in the last N days -- for recurring/delta checks ("what is new since my last check"). Applied per sub-query before dedupe; response includes deduped newSince.newCount and the newest/oldest ingest timestamp in the window.'}, 'posted_within_days': {'type': 'number', 'description': 'Preferred alias for new_within_days: only opportunities ingested (added by us) in the last N days. Applied per sub-query before dedupe; the response includes a deduped newSince summary. If both posted_within_days and new_within_days are supplied, posted_within_days wins.'}, 'include_foundations': {'type': 'boolean', 'description': 'Also search private foundations (default: true)'}, 'max_response_tokens': {'type': 'number', 'default': 4000, 'minimum': 500, 'description': 'Token budget for response (default: 4000 ≈ 16KB). Server auto-caps results to fit. Increase to 8000-16000 for more results per call, decrease to 2000 for lightweight scanning.'}}}
Eingabeschema
{'type': 'object', 'required': ['queries'], 'properties': {'since': {'type': 'string', 'description': 'Stateless alternative to posted_within_days/new_within_days: ISO 8601 instant. Only opportunities ingested at/after this instant.'}, 'offset': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Number of results to skip for pagination (default: 0). Use with max_results to page through large result sets. Example: offset=100 with max_results=100 returns results 101-200.'}, 'source': {'type': 'string', 'description': 'Filter every batch sub-query to a specific source/domain, e.g. "sam.gov".'}, 'queries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'minItems': 1, 'description': 'Array of 2-5 search queries to run in parallel. Example for IT services: ["IT services contract", "software development federal", "technology consulting government", "computer services procurement"]'}, 'max_results': {'type': 'number', 'default': 10, 'minimum': 1, 'description': 'Maximum opportunities to return (default: 10, max: 100). Token cost guide: 10 results ~4KB, 25 results ~10KB, 50 results ~20KB, 100 results ~40KB.'}, 'sam_filters': {'type': 'object', 'properties': {'office': {'type': 'string', 'description': 'Contracting office'}, 'pop_zip': {'type': 'string', 'description': 'Place of performance ZIP'}, 'pop_city': {'type': 'string', 'description': 'Place of performance city'}, 'sub_tier': {'type': 'string', 'description': 'Sub-tier agency'}, 'pop_state': {'type': 'string', 'description': 'Place of performance state code. Alias: place_of_performance_state, which wins if both are set.'}, 'set_aside': {'type': 'string', 'description': 'Set-aside type. Supported: SDVOSB, VOSB, WOSB, EDWOSB, 8a/8(a), HUBZone, SBA/"Small Business" (each expands to all matching SAM codes and CSV labels). Actually filters results.'}, 'department': {'type': 'string', 'description': 'Federal department (e.g., "Department of Defense")'}, 'pop_country': {'type': 'string', 'description': 'Place of performance country (default: USA)'}, 'set_aside_code': {'type': 'string', 'description': 'Exact SAM set-aside code (e.g., "SBA", "8A", "SDVOSBC"). Prefer set_aside for common terms.'}, 'place_of_performance_state': {'type': 'string', 'description': 'Preferred alias for pop_state; wins if both are set.'}}, 'description': 'SAM.gov specific filters'}, 'detail_level': {'enum': ['minimal', 'compact', 'full'], 'type': 'string', 'default': 'compact', 'description': 'Controls response verbosity. minimal (~120 bytes/result): id, title, org, deadline, url, qualityScore - best for scanning 50+ results. compact (~400 bytes/result, DEFAULT): adds snippet, category, status, deadlineType, daysUntilDeadline, deadlineLabel, and lastRoundClosedAt - good for recommendations. full (~1.5KB/result): everything including eligibility, amounts - only use with max_results <= 10.'}, 'user_context': {'type': 'object', 'properties': {'location': {'type': 'string', 'description': 'State code or "nationwide"'}, 'naics_codes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'NAICS codes for filtering (e.g., ["541512", "541511"])'}, 'location_strict': {'type': 'boolean', 'description': 'With a recognized location, requests geographic filtering; nationwide or unspecified records and explicitly broader fallbacks may remain. Check geographyFilterOutcome and warnings. With sam_filters.place_of_performance_state (or pop_state in batch), true additionally excludes records without a confirmed performance location; false demotes and caveats them.'}, 'organization_type': {'enum': ['small_business', 'startup', 'nonprofit', 'university', 'government', 'individual'], 'type': 'string', 'description': 'Common natural-language phrasing (e.g. "501(c)(3) nonprofit") is also parsed; unparseable values are ignored with an explicit note in the response.'}}}, 'new_within_days': {'type': 'number', 'description': 'Backwards-compatible alias for posted_within_days. Only opportunities ingested (added by us) in the last N days -- for recurring/delta checks ("what is new since my last check"). Applied per sub-query before dedupe; response includes deduped newSince.newCount and the newest/oldest ingest timestamp in the window.'}, 'posted_within_days': {'type': 'number', 'description': 'Preferred alias for new_within_days: only opportunities ingested (added by us) in the last N days. Applied per sub-query before dedupe; the response includes a deduped newSince summary. If both posted_within_days and new_within_days are supplied, posted_within_days wins.'}, 'max_response_tokens': {'type': 'number', 'default': 4000, 'minimum': 500, 'description': 'Token budget for response (default: 4000 ≈ 16KB). Server auto-caps results to fit. Increase to 8000-16000 for more results per call, decrease to 2000 for lightweight scanning.'}}}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'type': 'object', 'properties': {'days': {'type': 'number', 'description': 'Alternative to weeks: exact number of days ahead to show (default: 28, max: 365)'}, 'weeks': {'type': 'number', 'description': 'Number of weeks ahead to show (default: 4, max: 12)'}, 'compact': {'type': 'boolean', 'default': True, 'description': 'Return compact rows by default to keep agent payloads small. Long titles/orgs/links may be shortened or omitted; set false for full descriptions, nested quality details, and full section arrays.'}, 'category': {'type': 'string', 'description': 'Optional. Restrict to ONE category instead of the default balanced grants+procurement view (e.g. "grant", "procurement", "prize"). Omit to get both grants and procurement as separate sections.'}}}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'number', 'description': 'Saved search ID (from list_saved_searches)'}}}
Eingabeschema
{'type': 'object', 'required': ['organization'], 'properties': {'page': {'type': 'number', 'description': '1-based page of matched recipients.'}, 'limit': {'type': 'number', 'description': 'Recipients per page (default 20, max 50).'}, 'state': {'type': 'string', 'description': 'Optional 2-letter state code to restrict matches to recipients recorded in that state.'}, 'organization': {'type': 'string', 'description': 'Recipient organization name, at least 3 characters. Recipient names are written however the filing foundation chose to write them, so the shortest distinctive part of the name matches best.'}}}
Eingabeschema
{'type': 'object', 'required': ['opportunity_id'], 'properties': {'limit': {'type': 'number', 'description': 'Max similar opportunities to return (default: 5, max: 20)'}, 'opportunity_id': {'type': 'string', 'description': 'ID of the opportunity to find similar matches for (from search results)'}}}
Eingabeschema
{'type': 'object', 'required': ['cause'], 'properties': {'page': {'type': 'number', 'description': '1-based page of funders.'}, 'cause': {'type': 'string', 'description': 'Cause area name (for example "Education") or its NTEE major group letter (for example "B").'}, 'limit': {'type': 'number', 'description': 'Funders per page (default 20, max 50).'}, 'state': {'type': 'string', 'description': 'Optional 2-letter state code for the RECIPIENT organizations, not the funder.'}}}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'type': 'object', 'required': ['ein'], 'properties': {'ein': {'type': 'string', 'description': '9-digit EIN (no dashes). Example: 911663695. Must be a private foundation (990-PF filer).'}, 'page': {'type': 'number', 'description': 'For federal_connections, 1-based results page.'}, 'year': {'type': 'number', 'description': 'For grant_history, filter by filing year.'}, 'limit': {'type': 'number', 'description': 'Rows per paid page (default 25, max 100). Federal connections uses page-number pagination; grant history and repeat grantees return opaque cursors.'}, 'state': {'type': 'string', 'description': 'For grant_history or federal_connections, filter by 2-letter recipient state.'}, 'cursor': {'type': 'string', 'description': 'Opaque cursor returned by the prior page.'}, 'section': {'enum': ['public_profile', 'grant_history', 'repeat_grantees', 'leadership', 'federal_connections'], 'type': 'string', 'description': 'Foundation Intelligence section. Grant history and repeat grantees require Plus; filing-listed leadership and federal-recipient connections require Pro.'}, 'recipient': {'type': 'string', 'description': 'Filter grant-history or repeat-grantee rows by organization name.'}, 'minimum_years': {'type': 'number', 'description': 'For repeat_grantees, minimum covered filing years (2+).'}, 'maximum_amount': {'type': 'number', 'description': 'For grant_history, maximum amount per reported line.'}, 'minimum_amount': {'type': 'number', 'description': 'For grant_history, minimum amount per reported line.'}, 'assistance_listing_number': {'type': 'string', 'description': 'For federal_connections, filter by Assistance Listing number such as 93.855.'}}}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Exact opportunity ID from search results (CUID format like "cmk65gf09...")'}}}
Eingabeschema
{'type': 'object', 'properties': {'quantity': {'type': 'number', 'description': 'Number of packs to buy (1-20, default: 1). Each pack = 50 searches.'}}}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'type': 'object', 'properties': {'topic': {'enum': ['overview', 'search', 'foundations', 'batch', 'filters', 'workflows', 'all'], 'type': 'string', 'description': 'Topic to get guidance on (default: overview). Use "all" for complete reference.'}}}
Eingabeschema
{'type': 'object', 'properties': {'plan': {'enum': ['plus', 'pro'], 'type': 'string', 'description': 'Plan to upgrade to (default: plus)'}, 'interval': {'enum': ['month'], 'type': 'string', 'description': 'Billing interval (default: month)'}}}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'type': 'object', 'required': ['action'], 'properties': {'tool': {'type': 'string', 'description': 'Which tool had the issue'}, 'action': {'enum': ['clicked', 'saved', 'dismissed', 'irrelevant', 'wrong_category', 'bug', 'feature_request', 'data_issue', 'praise', 'other'], 'type': 'string', 'description': 'Type of feedback. Use "bug" for errors, "data_issue" for stale/wrong data, "irrelevant" for poor results.'}, 'message': {'type': 'string', 'description': 'Describe the issue. For bugs, include the error message.'}, 'category': {'type': 'string'}, 'severity': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'description': 'high = user blocked, medium = degraded experience, low = minor issue'}, 'request_id': {'type': 'string', 'description': 'From error response - helps us trace the issue'}, 'search_query': {'type': 'string', 'description': 'The search query that produced the issue'}, 'user_context': {'type': 'object'}, 'opportunity_id': {'type': 'string', 'description': 'ID of the opportunity being reported on (if applicable)'}, 'result_position': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'name': {'type': 'string', 'description': 'Friendly name for this search (e.g. "DOE Clean Energy Grants")'}, 'query': {'type': 'string', 'description': 'Search query to save (e.g. "clean energy research grants", "IT services federal contracts")'}, 'cadence': {'enum': ['weekly', 'daily', 'never'], 'type': 'string', 'description': 'Alert frequency. daily requires a paid plan (Plus or Pro); free includes weekly. never = save the search without email alerts. Default: weekly'}, 'filters': {'type': 'object', 'properties': {'status': {'type': 'array', 'items': {'enum': ['open', 'rolling', 'coming_soon'], 'type': 'string'}, 'description': 'Status filter. Recommended: ["open", "rolling"]. Include "coming_soon" for early awareness.'}, 'sources': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Specific data sources by slug (e.g. ["sam.gov", "grants.gov", "nsf"]). Limits alerts to these sources only.'}, 'geography': {'type': 'array', 'items': {'type': 'string'}, 'description': 'US state codes (2-letter uppercase, e.g. ["CA", "TX"]). Eligibility-aware: shows opportunities tagged for these states, plus national opportunities, plus opportunities with unspecified geography (typically federal). Opportunities tagged only for other states are excluded.'}, 'itemTypes': {'type': 'array', 'items': {'enum': ['grant', 'procurement', 'prize', 'financial', 'other'], 'type': 'string'}, 'description': 'Opportunity types. "grant" includes fellowships/scholarships/SBIR. "procurement" includes contracts/RFPs. "financial" includes loans/tax credits.'}, 'sourceTypes': {'type': 'array', 'items': {'enum': ['federal', 'state', 'local', 'foundation', 'corporate'], 'type': 'string'}, 'description': 'Filter by funding source. "federal" = grants.gov, SAM.gov, DOE, NSF, etc.'}, 'organization': {'type': 'string', 'description': 'Filter by agency/organization name (e.g. "Department of Energy", "NSF", "NIH").'}, 'deadlineRange': {'enum': ['next7days', 'next30days', 'next60days', 'next90days', 'noDeadline'], 'type': 'string', 'description': 'Deadline window for alerts.'}, 'sourceContext': {'type': 'object', 'properties': {'source': {'type': 'string', 'description': 'Source slug (e.g. "sam.gov", "grants.gov")'}, 'filters': {'type': 'object', 'description': 'Source-specific filter keys. For SAM.gov: samDepartment, samSubTier, samOffice, samSetAside, samSetAsideCode, samPopState, samPopCity, samPopZip, naics (comma-separated NAICS codes). For Grants.gov: grantsAgencyCode, grantsCfda, grantsDocType.'}}, 'description': 'Source-specific filters for SAM.gov or Grants.gov. Use when the user wants alerts from a specific source with its native filters.'}, 'applicantTypes': {'type': 'array', 'items': {'enum': ['nonprofit', 'government', 'business', 'tribal', 'education'], 'type': 'string'}, 'description': 'Filter by eligible applicant type. Note: only ~7% of opportunities have this data, so this filter is soft (includes opportunities without eligibility data).'}}, 'description': 'Filters to narrow alert results. All optional. When omitted, all opportunity types are included.'}, 'hidelow': {'type': 'boolean', 'description': 'Hide low-confidence results in alerts. Default: false'}}}
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'Max foundations to return (default: 10, max: 50)'}, 'query': {'type': 'string', 'description': 'Full private-foundation legal name or 9-digit EIN. Examples: "Gates Foundation" or "56-2618866". Mission/topic queries are not available in this release.'}, 'states': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by state (2-letter codes). Where foundation is based.'}, 'min_annual_giving': {'type': 'number', 'description': 'Minimum annual giving in dollars'}}}
Eingabeschema
{'type': 'object', 'anyOf': [{'required': ['query']}, {'required': ['source']}, {'required': ['organization']}], 'properties': {'limit': {'type': 'number', 'description': 'Max results (default: 10)'}, 'query': {'type': 'string', 'description': 'Natural language search query'}, 'since': {'type': 'string', 'description': 'Stateless alternative to posted_within_days/new_within_days: ISO 8601 instant. Only opportunities ingested at/after this instant. Store the previous response newSince.newest and pass it here to manage your own watermark.'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor from previous response'}, 'source': {'type': 'string', 'description': 'Filter by source domain or dataSource (e.g., "grants.gov" or "tier0-sam.gov")'}, 'status': {'enum': ['open', 'closed', 'all'], 'type': 'string', 'description': 'Filter by status'}, 'compact': {'type': 'boolean', 'description': 'Return compact results (default: true). Compact results include essential fields: id, title, organization, category, url, deadline, deadlineType, daysUntilDeadline, deadlineLabel, lastRoundClosedAt, status, qualityScore, and snippet. Set to false for full details including eligibility, amounts, and match explanations.'}, 'category': {'type': 'string', 'description': 'Filter by category'}, 'min_quality': {'enum': ['high', 'medium', 'low', 'any'], 'type': 'string', 'description': 'Minimum record-completeness tier (default: medium). any removes this quality-tier filter; relevance, access and other filters still apply.'}, 'organization': {'type': 'string', 'description': 'Filter by organization or funder name'}, 'user_context': {'type': 'object', 'properties': {'location': {'type': 'string'}, 'looking_for': {'enum': ['grants', 'contracts', 'all'], 'type': 'string'}, 'naics_codes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'NAICS codes to INCLUDE (e.g., ["541611"])'}, 'location_strict': {'type': 'boolean', 'description': 'With a recognized location, requests geographic filtering; nationwide or unspecified records and explicitly broader fallbacks may remain. Check geographyFilterOutcome and warnings. With sam_filters.place_of_performance_state (or pop_state in batch), true additionally excludes records without a confirmed performance location; false demotes and caveats them.'}, 'procurement_type': {'enum': ['professional_services', 'construction', 'manufacturing', 'it_services', 'all'], 'type': 'string', 'description': 'Preset filter for SAM.gov: professional_services (NAICS 54xxxx - consulting, engineering, R&D, excludes manufacturing/construction noise), it_services (NAICS 5415xx), construction (23xxxx), manufacturing (31-33xxxx). Use this OR exclude_naics_prefixes, not both.'}, 'organization_type': {'enum': ['nonprofit', 'startup', 'small_business', 'university', 'government', 'individual'], 'type': 'string', 'description': 'Common natural-language phrasing (e.g. "501(c)(3) nonprofit") is also parsed; unparseable values are ignored with an explicit note in the response.'}, 'exclude_naics_prefixes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'NAICS prefixes to EXCLUDE. Use ["31", "32", "33"] to exclude manufacturing, ["23"] to exclude construction. Eliminates commodity procurement noise like "O-RING" or "VALVE" results.'}}, 'description': 'User context for better filtering'}, 'new_within_days': {'type': 'number', 'description': 'Backwards-compatible alias for posted_within_days. Only opportunities WE ADDED (ingested) in the last N days for recurring/delta checks ("what is new since my last check"). Additive to all other filters. In queryless browse mode without a single source, the recency window is sampled across sources round-robin by ingest recency so one bulk harvester cannot own the digest; each source remains newest first. The response includes newSince and windowCoverage: sourcesSampled counts distinct sources returned by the grouped provider query before MCP quality, judge, recency-withhold, and page filters; it is absent when no grouped sample was available, including when sampling was not attempted, and 0 means the grouped query succeeded but returned no sourced rows; sourcesServed counts distinct sources delivered on this page. windowCoverage.order is "recency" for the queryless browse digest or "relevance" when a query is present. windowIncomplete/incompleteReason is separate from ceilingTruncated, which is true only when the 2,000-row ceiling excluded records; ceilingTruncated and hardCeiling are present only when order is "recency" and are omitted entirely under "relevance" (query mode never walks past a single bounded fetch, so no ceiling logic runs). Not the opportunity posted date or deadline.'}, 'procurement_type': {'enum': ['professional_services', 'it_services', 'construction', 'manufacturing', 'all'], 'type': 'string', 'description': 'Filter SAM.gov contracts by industry type. professional_services = consulting, engineering, R&D (NAICS 54xxxx, excludes manufacturing/construction noise). it_services = software, IT systems (NAICS 5415xx). construction = building projects (NAICS 23xxxx). manufacturing = production (NAICS 31-33xxxx). Use this to avoid irrelevant commodity results like "O-RING" or "VALVE" when searching for service contracts.'}, 'posted_within_days': {'type': 'number', 'description': 'Preferred alias for new_within_days: only opportunities WE ADDED (ingested) in the last N days. In queryless browse mode without a single source, the recency window is sampled across sources round-robin by ingest recency so one bulk harvester cannot own the digest; each source remains newest first. In windowCoverage, sourcesSampled counts distinct sources returned by the grouped provider query before MCP quality, judge, recency-withhold, and page filters; it is absent when no grouped sample was available, including when sampling was not attempted, and 0 means the grouped query succeeded but returned no sourced rows; sourcesServed counts distinct sources delivered on this page. windowCoverage.order is "recency" for the queryless browse digest or "relevance" when a query is present. windowIncomplete/incompleteReason is separate from ceilingTruncated, which is true only when the 2,000-row ceiling excluded records; ceilingTruncated and hardCeiling are present only when order is "recency" and are omitted entirely under "relevance" (query mode never walks past a single bounded fetch, so no ceiling logic runs). Uses the same ingest freshness field as newSince/recurring checks; not the opportunity posted date or deadline. If both posted_within_days and new_within_days are supplied, posted_within_days wins.'}, 'deadline_within_days': {'type': 'number', 'description': 'Only opportunities closing within N days'}}}
Eingabeschema
{'type': 'object', 'anyOf': [{'required': ['query']}, {'required': ['queries']}, {'required': ['source']}, {'required': ['organization']}], 'properties': {'limit': {'type': 'number', 'description': 'Max results (default: 25)'}, 'query': {'type': 'string', 'description': 'Natural language search query. Provide either query (single search) or queries (batch mode) — exactly one.'}, 'since': {'type': 'string', 'description': 'Stateless alternative to posted_within_days/new_within_days: ISO 8601 instant. Only opportunities ingested at/after this instant. Store the previous response newSince.newest and pass it here to manage your own watermark.'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor from previous response'}, 'offset': {'type': 'number', 'minimum': 0, 'description': 'Batch mode only: number of merged results to skip for pagination (default 0). Ignored in single-query mode.'}, 'source': {'type': 'string', 'description': 'Filter to a specific source/domain, e.g. "grants.gov", "deq.nc.gov", or "sam.gov".'}, 'status': {'enum': ['open', 'closed', 'all'], 'type': 'string', 'description': 'Filter by status'}, 'compact': {'type': 'boolean', 'description': 'Return compact results (default: true). Set to false for full details.'}, 'queries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'minItems': 1, 'description': 'BATCH MODE (paid, replaces batch_search_grantsplus): array of 2-5 search queries to run in parallel, dedupe, and merge. Example for clean energy: ["renewable energy grants", "solar wind funding", "clean energy nonprofit", "sustainability grants", "green technology funding"]. When set, query is ignored and the batch response params (detail_level, max_results, offset, max_response_tokens) apply.'}, 'max_results': {'type': 'number', 'minimum': 1, 'description': 'Batch mode only: maximum merged results to return (default 10). Ignored in single-query mode (use limit).'}, 'min_quality': {'enum': ['high', 'medium', 'low', 'any'], 'type': 'string', 'description': 'Minimum record-completeness tier (default: medium). any removes this quality-tier filter; relevance, access and other filters still apply.'}, 'detail_level': {'enum': ['minimal', 'compact', 'full'], 'type': 'string', 'description': 'Batch mode only: controls response verbosity (minimal/compact [default]/full). Ignored in single-query mode.'}, 'organization': {'type': 'string', 'description': 'Filter by funding organization'}, 'user_context': {'type': 'object', 'properties': {'location': {'type': 'string'}, 'organization_type': {'enum': ['nonprofit', 'startup', 'small_business', 'university', 'government', 'individual'], 'type': 'string', 'description': 'Common natural-language phrasing (e.g. "501(c)(3) nonprofit") is also parsed; unparseable values are ignored with an explicit note in the response.'}}, 'description': 'User context for better filtering'}, 'grants_filters': {'type': 'object', 'properties': {'cfda': {'type': 'string', 'description': 'CFDA/Assistance listing number (e.g., "10.001")'}, 'agency_code': {'type': 'string', 'description': 'Grants.gov agency code (HHS, DOE, NSF, etc.)'}}, 'description': 'Grants.gov specific filters'}, 'new_within_days': {'type': 'number', 'description': 'Backwards-compatible alias for posted_within_days. Only opportunities WE ADDED (ingested) in the last N days for recurring/delta checks ("what is new since my last check"). Additive to all other filters. In queryless browse mode without a single source, the recency window is sampled across sources round-robin by ingest recency so one bulk harvester cannot own the digest; each source remains newest first. The response includes newSince and windowCoverage: sourcesSampled counts distinct sources returned by the grouped provider query before MCP quality, judge, recency-withhold, and page filters; it is absent when no grouped sample was available, including when sampling was not attempted, and 0 means the grouped query succeeded but returned no sourced rows; sourcesServed counts distinct sources delivered on this page. windowCoverage.order is "recency" for the queryless browse digest or "relevance" when a query is present. windowIncomplete/incompleteReason is separate from ceilingTruncated, which is true only when the 2,000-row ceiling excluded records; ceilingTruncated and hardCeiling are present only when order is "recency" and are omitted entirely under "relevance" (query mode never walks past a single bounded fetch, so no ceiling logic runs). Not the opportunity posted date or deadline.'}, 'posted_within_days': {'type': 'number', 'description': 'Preferred alias for new_within_days: only opportunities WE ADDED (ingested) in the last N days. In queryless browse mode without a single source, the recency window is sampled across sources round-robin by ingest recency so one bulk harvester cannot own the digest; each source remains newest first. In windowCoverage, sourcesSampled counts distinct sources returned by the grouped provider query before MCP quality, judge, recency-withhold, and page filters; it is absent when no grouped sample was available, including when sampling was not attempted, and 0 means the grouped query succeeded but returned no sourced rows; sourcesServed counts distinct sources delivered on this page. windowCoverage.order is "recency" for the queryless browse digest or "relevance" when a query is present. windowIncomplete/incompleteReason is separate from ceilingTruncated, which is true only when the 2,000-row ceiling excluded records; ceilingTruncated and hardCeiling are present only when order is "recency" and are omitted entirely under "relevance" (query mode never walks past a single bounded fetch, so no ceiling logic runs). Uses the same ingest freshness field as newSince/recurring checks; not the opportunity posted date or deadline. If both posted_within_days and new_within_days are supplied, posted_within_days wins.'}, 'include_foundations': {'type': 'boolean', 'description': 'Also search private foundations matching the query (default: true). Returns foundations that have historically funded similar work.'}, 'max_response_tokens': {'type': 'number', 'minimum': 500, 'description': 'Batch mode only: token budget for the response (default 4000). Server auto-caps results to fit. Ignored in single-query mode.'}, 'deadline_within_days': {'type': 'number', 'description': 'Only opportunities closing within N days'}}}
Eingabeschema
{'type': 'object', 'anyOf': [{'required': ['query']}, {'required': ['queries']}, {'required': ['source']}, {'required': ['organization']}], 'properties': {'limit': {'type': 'number', 'description': 'Max results (default: 25)'}, 'query': {'type': 'string', 'description': 'Natural language search query. Provide either query (single search) or queries (batch mode) — exactly one.'}, 'since': {'type': 'string', 'description': 'Stateless alternative to posted_within_days/new_within_days: ISO 8601 instant. Only opportunities ingested at/after this instant. Store the previous response newSince.newest and pass it here to manage your own watermark.'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor from previous response'}, 'offset': {'type': 'number', 'minimum': 0, 'description': 'Batch mode only: number of merged results to skip for pagination (default 0). Ignored in single-query mode.'}, 'source': {'type': 'string', 'description': 'Filter to a specific source/domain, e.g. "sam.gov" or an agency source domain.'}, 'status': {'enum': ['open', 'closed', 'all'], 'type': 'string', 'description': 'Filter by status'}, 'compact': {'type': 'boolean', 'description': 'Return compact results (default: true). Set to false for full details.'}, 'queries': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'minItems': 1, 'description': 'BATCH MODE (paid, replaces batch_search_procurement): array of 2-5 search queries to run in parallel, dedupe, and merge. Example for IT services: ["IT services contract", "software development federal", "technology consulting government", "computer services procurement"]. When set, query is ignored and the batch response params (detail_level, max_results, offset, max_response_tokens) apply.'}, 'max_results': {'type': 'number', 'minimum': 1, 'description': 'Batch mode only: maximum merged results to return (default 10). Ignored in single-query mode (use limit).'}, 'min_quality': {'enum': ['high', 'medium', 'low', 'any'], 'type': 'string', 'description': 'Minimum record-completeness tier (default: medium). any removes this quality-tier filter; relevance, access and other filters still apply.'}, 'sam_filters': {'type': 'object', 'properties': {'psc_code': {'type': 'string', 'description': 'Product Service Code. NOT YET APPLIED to results — accepted for schema compatibility with other tools but currently reported in the response as an ignored filter; do not rely on it to narrow results.'}, 'pop_state': {'type': 'string', 'description': 'Alias for place_of_performance_state — state code (e.g., "CA", "TX"). When both are sent, place_of_performance_state wins.'}, 'set_aside': {'type': 'string', 'description': 'Set-aside type. Supported: SDVOSB, VOSB, WOSB, EDWOSB, 8a/8(a), HUBZone, SBA/"Small Business" (each expands to all matching SAM codes and CSV labels). Actually filters results.'}, 'department': {'type': 'string', 'description': 'Top-level federal department or independent agency, e.g. "Department of Energy", "DOE", "Defense", "GSA". Matched against the live SAM.gov department facet (agency name, acronym, or "Department of X" phrasing all resolve); an unrecognized value is applied as-is and reported in the response as departmentFilter.'}, 'place_of_performance_state': {'type': 'string', 'description': 'State code (e.g., "CA", "TX"). Alias: pop_state (used by search_grantsplus/batch_search_procurement) is also accepted here.'}}, 'description': 'SAM.gov specific filters'}, 'detail_level': {'enum': ['minimal', 'compact', 'full'], 'type': 'string', 'description': 'Batch mode only: controls response verbosity (minimal/compact [default]/full). Ignored in single-query mode.'}, 'organization': {'type': 'string', 'description': 'Filter by contracting agency'}, 'user_context': {'type': 'object', 'properties': {'location': {'type': 'string'}, 'naics_codes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'NAICS codes to INCLUDE (e.g., ["541611"])'}, 'location_strict': {'type': 'boolean', 'description': 'With a recognized location, requests geographic filtering; nationwide or unspecified records and explicitly broader fallbacks may remain. Check geographyFilterOutcome and warnings. With sam_filters.place_of_performance_state (or pop_state in batch), true additionally excludes records without a confirmed performance location; false demotes and caveats them.'}, 'organization_type': {'enum': ['nonprofit', 'startup', 'small_business', 'university', 'government', 'individual'], 'type': 'string', 'description': 'Common natural-language phrasing (e.g. "501(c)(3) nonprofit") is also parsed; unparseable values are ignored with an explicit note in the response.'}, 'exclude_naics_prefixes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'NAICS prefixes to EXCLUDE (e.g., ["31","32","33"] for manufacturing)'}}, 'description': 'User context for better filtering'}, 'new_within_days': {'type': 'number', 'description': 'Backwards-compatible alias for posted_within_days. Only opportunities WE ADDED (ingested) in the last N days for recurring/delta checks ("what is new since my last check"). Additive to all other filters. In queryless browse mode without a single source, the recency window is sampled across sources round-robin by ingest recency so one bulk harvester cannot own the digest; each source remains newest first. The response includes newSince and windowCoverage: sourcesSampled counts distinct sources returned by the grouped provider query before MCP quality, judge, recency-withhold, and page filters; it is absent when no grouped sample was available, including when sampling was not attempted, and 0 means the grouped query succeeded but returned no sourced rows; sourcesServed counts distinct sources delivered on this page. windowCoverage.order is "recency" for the queryless browse digest or "relevance" when a query is present. windowIncomplete/incompleteReason is separate from ceilingTruncated, which is true only when the 2,000-row ceiling excluded records; ceilingTruncated and hardCeiling are present only when order is "recency" and are omitted entirely under "relevance" (query mode never walks past a single bounded fetch, so no ceiling logic runs). Not the opportunity posted date or deadline.'}, 'procurement_type': {'enum': ['professional_services', 'it_services', 'construction', 'manufacturing', 'all'], 'type': 'string', 'description': 'Filter by industry. professional_services = consulting/engineering/R&D (NAICS 54xxxx). it_services = software/IT (NAICS 5415xx). construction = building (NAICS 23xxxx). manufacturing = production (NAICS 31-33xxxx).'}, 'posted_within_days': {'type': 'number', 'description': 'Preferred alias for new_within_days: only opportunities WE ADDED (ingested) in the last N days. In queryless browse mode without a single source, the recency window is sampled across sources round-robin by ingest recency so one bulk harvester cannot own the digest; each source remains newest first. In windowCoverage, sourcesSampled counts distinct sources returned by the grouped provider query before MCP quality, judge, recency-withhold, and page filters; it is absent when no grouped sample was available, including when sampling was not attempted, and 0 means the grouped query succeeded but returned no sourced rows; sourcesServed counts distinct sources delivered on this page. windowCoverage.order is "recency" for the queryless browse digest or "relevance" when a query is present. windowIncomplete/incompleteReason is separate from ceilingTruncated, which is true only when the 2,000-row ceiling excluded records; ceilingTruncated and hardCeiling are present only when order is "recency" and are omitted entirely under "relevance" (query mode never walks past a single bounded fetch, so no ceiling logic runs). Uses the same ingest freshness field as newSince/recurring checks; not the opportunity posted date or deadline. If both posted_within_days and new_within_days are supplied, posted_within_days wins.'}, 'max_response_tokens': {'type': 'number', 'minimum': 500, 'description': 'Batch mode only: token budget for the response (default 4000). Server auto-caps results to fit. Ignored in single-query mode.'}, 'deadline_within_days': {'type': 'number', 'description': 'Only opportunities closing within N days'}}}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'number', 'description': 'Saved search ID to update'}, 'name': {'type': 'string', 'description': 'New friendly name'}, 'query': {'type': 'string', 'description': 'New search query text'}, 'cadence': {'enum': ['weekly', 'daily', 'never'], 'type': 'string', 'description': 'New alert frequency. daily requires a paid plan (Plus or Pro); free includes weekly. never = turn email alerts off.'}, 'filters': {'type': 'object', 'properties': {'status': {'type': 'array', 'items': {'enum': ['open', 'rolling', 'coming_soon'], 'type': 'string'}, 'description': 'Status filter.'}, 'sources': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Specific data sources by slug.'}, 'geography': {'type': 'array', 'items': {'type': 'string'}, 'description': 'US state codes (2-letter uppercase).'}, 'itemTypes': {'type': 'array', 'items': {'enum': ['grant', 'procurement', 'prize', 'financial', 'other'], 'type': 'string'}, 'description': 'Opportunity types.'}, 'sourceTypes': {'type': 'array', 'items': {'enum': ['federal', 'state', 'local', 'foundation', 'corporate'], 'type': 'string'}, 'description': 'Funding source category.'}, 'organization': {'type': 'string', 'description': 'Agency/organization name.'}, 'deadlineRange': {'enum': ['next7days', 'next30days', 'next60days', 'next90days', 'noDeadline'], 'type': 'string', 'description': 'Deadline window.'}, 'sourceContext': {'type': 'object', 'description': 'Source-specific filters (SAM.gov, Grants.gov). See save_search for details.'}, 'applicantTypes': {'type': 'array', 'items': {'enum': ['nonprofit', 'government', 'business', 'tribal', 'education'], 'type': 'string'}, 'description': 'Eligible applicant types.'}}, 'description': 'New filters (same schema as save_search filters). Replaces all existing filters.'}, 'hidelow': {'type': 'boolean', 'description': 'Hide low-confidence results in alerts.'}, 'emailEnabled': {'type': 'boolean', 'description': 'Enable or disable email alerts without changing cadence.'}}}
Eingabeschema
{'type': 'object', 'properties': {'days': {'type': 'number', 'description': 'Ingest-freshness window in days (default: 7). Only opportunities FundingLandscape ADDED in the last N days, not the opportunity posted date or deadline. Ignored if since is set.'}, 'limit': {'type': 'number', 'description': 'Results per page (default and maximum: 25). Large results produce smaller pages; follow nextCursor even after a short page.'}, 'query': {'type': 'string', 'description': 'Optional natural language filter (e.g. "clean energy nonprofit"). Omit for a pure recency digest across all new opportunities.'}, 'since': {'type': 'string', 'description': 'Stateless alternative to days: ISO 8601 instant. Only opportunities ingested at/after this instant. Store the previous response newSince.newest and pass it here to manage your own watermark.'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor from previous response'}, 'source': {'type': 'string', 'description': 'Filter to a specific source/domain, e.g. "grants.gov" or "sam.gov".'}, 'status': {'enum': ['active', 'open', 'rolling', 'forecast', 'closed', 'all'], 'type': 'string', 'description': 'Filter by opportunity status (default: active)'}, 'compact': {'type': 'boolean', 'description': 'Return compact results (default: true). Set to false for full details.'}, 'category': {'type': 'string', 'description': 'Filter by category'}, 'min_quality': {'enum': ['high', 'medium', 'low', 'any'], 'type': 'string', 'description': 'Minimum record-completeness tier (default: medium). any removes this quality-tier filter; relevance, access and other filters still apply.'}, 'user_context': {'type': 'object', 'properties': {'location': {'type': 'string', 'description': 'State code or "nationwide"'}, 'looking_for': {'enum': ['grants', 'contracts', 'all'], 'type': 'string'}, 'organization_type': {'type': 'string', 'description': 'Common natural-language phrasing (e.g. "501(c)(3) nonprofit") is also parsed; unparseable values are ignored with an explicit note in the response.'}}}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
Stratalize Healthcare
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Governance
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Oracle
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Real Estate
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Crypto & DeFi
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
US Company Intelligence for AI Agents (SEC EDGAR, x402)
Offers pay-per-call web extraction, search and LLM tools plus French company, property, procurement, marketplace and security dat…
editalmd
Searches Brazilian public procurement opportunities and documents, tracks deadlines and alerts, and supports tender document acce…
FirmLedger
Searches and manages verified business directory listings, company profiles, leads, jobs, watchlists, analytics, advertising, and…