SBA MCP Server
Allows searching and retrieving NASA-funded SBIR and STTR research and development awards, providing access to funding statistics, project abstracts, and firm details for small businesses in the aeronautics and space sectors.
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., "@SBA MCP ServerFind recent NASA SBIR awards related to satellite technology"
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.
SBA (Small Business Administration) MCP Server
Access SBA small business size standards and SBIR/STTR data (federal R&D funding for small businesses).
Data Available
Size Standards - Revenue/employee thresholds that define "small business" by NAICS code
SBIR Firms - Small businesses receiving federal R&D funding
SBIR Awards - Federal R&D contracts awarded to small businesses
Related MCP server: EzBiz Government Contracting MCP Server
Setup
No API key required. Add to your MCP config:
{
"sba": {
"command": "node",
"args": ["/path/to/sba/dist/index.js"],
"env": {}
}
}Tools
get_size_standards
Look up SBA size standards by NAICS code or industry keyword.
Parameter | Required | Description |
naicsCode | No | NAICS code (e.g., "541511"). Can be partial for broader search |
industry | No | Industry keyword (e.g., "software", "construction") |
Example: Find size standards for software companies
industry: "software"Returns: NAICS code, industry description, size threshold (revenue or employees)
check_size_standard
Check if a business qualifies as "small" under SBA standards.
Parameter | Required | Description |
naicsCode | Yes | NAICS code for the industry |
annualRevenue | No | Annual revenue in millions (e.g., 15.5 for $15.5M) |
employeeCount | No | Number of employees |
Example: Check if a software company with $20M revenue qualifies
naicsCode: "541511"
annualRevenue: 20search_sbir_firms
Search SBIR/STTR firms (innovative small businesses with federal R&D funding).
Parameter | Required | Description |
keyword | No | Search keyword |
name | No | Company name |
state | No | State abbreviation (e.g., "CA") |
womanOwned | No | Filter for woman-owned (true/false) |
hubzone | No | Filter for HUBZone businesses (true/false) |
limit | No | Max results (default 50, max 5000) |
Example: Find woman-owned tech firms in California
state: "CA"
womanOwned: true
keyword: "technology"search_sbir_awards
Search SBIR/STTR awards (federal R&D contracts).
Parameter | Required | Description |
firm | No | Company name |
keyword | No | Keyword in award title/abstract |
agency | No | Funding agency (DOD, NASA, NIH, NSF, DOE, etc.) |
year | No | Award year (e.g., "2024") |
state | No | State abbreviation |
phase | No | SBIR phase: "1" (feasibility), "2" (development), "3" (commercialization) |
limit | No | Max results (default 50, max 5000) |
Example: Find NASA awards in 2024
agency: "NASA"
year: "2024"
limit: 20get_sbir_firm_details
Get detailed information about a specific SBIR firm including their awards.
Parameter | Required | Description |
name | Yes | Exact company name |
sbir_stats
Get aggregate SBIR/STTR statistics.
Parameter | Required | Description |
type | Yes | "firms" or "awards" |
state | No | State filter |
agency | No | Agency filter (for awards) |
year | No | Year filter (for awards) |
Example: Get firm statistics by state
type: "firms"
state: "TX"SBIR Funding Agencies
Agency | Focus |
DOD | Defense technology |
NASA | Space and aeronautics |
NIH | Health and biomedical |
NSF | Science and engineering |
DOE | Energy technology |
USDA | Agricultural innovation |
Rate Limits
Size Standards API: No strict limit
SBIR API: Rate limited (has exponential backoff built in)
Note: The SBIR API has strict rate limits. If you receive rate limit errors, wait a few minutes before retrying.
Documentation
Size Standards: https://www.sba.gov/size-standards/
SBIR API: https://www.sbir.gov/api
SBIR Data: https://www.sbir.gov/data-resources
Available Tools
6 toolscheck_size_standardA
Check if a business qualifies as 'small' under SBA standards for a specific NAICS code.
| Name | Required | Description | Default |
|---|---|---|---|
| naicsCode | Yes | NAICS code for the industry | |
| annualRevenue | No | Annual revenue in millions of dollars (e.g., 15.5 for $15.5M) | |
| employeeCount | No | Number of employees |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates the tool performs a qualification check, which implies a read-only operation without side effects, but it doesn't specify details like response format, error handling, or data sources (e.g., SBA database). This leaves gaps in understanding how the tool behaves beyond its basic function.
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, efficient sentence that front-loads the core purpose ('Check if a business qualifies as small') and includes essential context ('under SBA standards for a specific NAICS code'). There is no wasted verbiage, making it highly concise and well-structured for quick 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?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is adequate but incomplete. It explains what the tool does but lacks details on output (e.g., returns a boolean or qualification status), prerequisites, or limitations (e.g., currency or time validity of standards). This leaves the agent with gaps in fully understanding the tool's context and usage.
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 the schema already documents all three parameters (naicsCode, annualRevenue, employeeCount) with clear descriptions. The description adds no additional parameter semantics beyond implying that NAICS code is central to the check, which aligns with the schema's required parameter. This meets the baseline for high schema coverage.
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 with a specific verb ('Check') and resource ('business qualifies as small under SBA standards'), and it distinguishes from siblings by specifying the NAICS code requirement, unlike tools like 'get_size_standards' which likely retrieve standards data rather than perform qualification checks.
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 usage context by specifying 'for a specific NAICS code,' which helps differentiate it from siblings like 'search_sbir_firms' that may not involve SBA standards. However, it lacks explicit guidance on when not to use it or direct alternatives, such as whether 'get_size_standards' should be used for reference instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sbir_firm_detailsC
Get detailed information about a specific SBIR firm by name
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Exact company name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'gets' information, implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns structured data, or handles errors. This leaves significant gaps in understanding the tool's behavior beyond its basic purpose.
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, clear sentence that efficiently conveys the tool's purpose without unnecessary words. It's front-loaded with the key action and resource, making it easy to parse and understand quickly.
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 annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'detailed information' includes, the format of the response, or any behavioral traits like error handling. Given the lack of structured data, more descriptive context is needed to adequately guide an agent.
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?
The input schema has 100% description coverage, with the 'name' parameter documented as 'Exact company name'. The description adds minimal value by reiterating 'by name' but doesn't provide additional context like case sensitivity, formatting requirements, or examples. Given the high schema coverage, a baseline score of 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 tool's purpose with a specific verb ('Get') and resource ('detailed information about a specific SBIR firm'), making it easy to understand what the tool does. However, it doesn't explicitly distinguish this tool from its sibling 'search_sbir_firms', which might also retrieve firm information, leaving some ambiguity about when to use one versus the other.
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 no guidance on when to use this tool versus alternatives like 'search_sbir_firms' or other siblings. It mentions retrieving information 'by name' but doesn't clarify if this is for exact matches only or how it differs from search functionality, leaving the agent with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_size_standardsA
Get SBA small business size standards by NAICS code. Returns revenue/employee thresholds that define 'small business' for federal contracting.
| Name | Required | Description | Default |
|---|---|---|---|
| naicsCode | No | NAICS code to look up (e.g., '541511' for custom computer programming). Can be partial for broader search. | |
| industry | No | Industry keyword to search (e.g., 'software', 'construction', 'restaurant') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the return type (revenue/employee thresholds) and purpose (federal contracting definition), but doesn't mention behavioral aspects like rate limits, authentication requirements, error conditions, or whether this is a lookup vs search operation. The description adds value but lacks operational context.
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 with zero waste. First sentence states purpose and input, second sentence specifies output and context. Every word earns its place in this efficiently structured description.
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 2-parameter lookup tool with no annotations and no output schema, the description provides adequate purpose and output information but lacks behavioral context (rate limits, auth needs) and doesn't fully compensate for the missing output schema. It's minimally viable but has clear gaps in operational guidance.
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 the schema already documents both parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., doesn't clarify the relationship between naicsCode and industry parameters or when to use each). Baseline 3 is appropriate when schema does the heavy lifting.
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 specific action ('Get SBA small business size standards'), identifies the resource ('by NAICS code'), and specifies the output ('Returns revenue/employee thresholds that define 'small business' for federal contracting'). It distinguishes from siblings by focusing on size standards rather than SBIR-related data.
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 usage context (federal contracting) but doesn't explicitly state when to use this tool versus alternatives like 'check_size_standard' or other SBIR tools. No guidance on parameter selection (NAICS code vs industry keyword) or when to use partial codes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sbir_statsC
Get SBIR/STTR statistics - count of firms or awards by criteria
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | 'firms' or 'awards' | |
| state | No | State abbreviation to filter | |
| agency | No | Agency to filter (for awards) | |
| year | No | Year to filter (for awards) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets' statistics, implying a read-only operation, but doesn't clarify if it requires authentication, has rate limits, returns paginated results, or what the output format looks like. For a tool with no annotations, this is a significant gap in behavioral transparency.
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, efficient sentence that front-loads the core purpose ('Get SBIR/STTR statistics') and adds necessary detail ('count of firms or awards by criteria') without any wasted words. It's appropriately sized for the tool's complexity and structure, making it easy to parse quickly.
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 moderate complexity (4 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain the return values, error conditions, or behavioral traits like data freshness or limitations. Without annotations or an output schema, the description should provide more context to help an agent use the tool effectively, but it falls short.
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 the schema already documents all parameters. The description adds minimal value by mentioning 'by criteria,' which loosely maps to the parameters but doesn't provide additional syntax, format details, or usage examples beyond what the schema specifies. This meets the baseline score of 3 for high schema coverage.
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 with a specific verb ('Get') and resource ('SBIR/STTR statistics'), and specifies the type of statistics ('count of firms or awards by criteria'). It distinguishes itself from siblings like 'search_sbir_awards' and 'search_sbir_firms' by focusing on aggregated statistics rather than detailed searches. However, it doesn't explicitly differentiate from all siblings (e.g., 'check_size_standard'), leaving minor ambiguity.
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 no guidance on when to use this tool versus alternatives. It mentions 'by criteria' but doesn't specify which sibling tools are better for detailed searches versus aggregated counts, nor does it indicate prerequisites or exclusions. This lack of context makes it harder for an agent to choose appropriately among the available SBIR-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sbir_awardsA
Search SBIR/STTR awards (federal R&D contracts to small businesses). Find by firm, agency, topic, or year.
| Name | Required | Description | Default |
|---|---|---|---|
| firm | No | Company/firm name | |
| keyword | No | Search keyword in award title/abstract | |
| agency | No | Funding agency (e.g., 'DOD', 'NASA', 'NIH', 'NSF', 'DOE') | |
| year | No | Award year (e.g., '2024') | |
| state | No | State abbreviation | |
| phase | No | SBIR phase: '1' (feasibility), '2' (development), '3' (commercialization) | |
| limit | No | Max results (default 50, max 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool searches awards but does not disclose behavioral traits such as pagination, rate limits, authentication needs, or what happens with no results. For a search tool with 7 parameters and no annotations, this is a significant gap in transparency.
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 front-loaded with the core purpose in the first sentence and efficiently lists searchable fields in the second. Every sentence earns its place with no wasted words, making it highly concise and well-structured for quick understanding.
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 complexity (7 parameters, no annotations, no output schema), the description is adequate but incomplete. It covers the purpose and some usage context but lacks details on behavioral aspects, output format, and full parameter guidance. It meets minimum viability but has clear gaps for effective agent use.
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 the schema already documents all 7 parameters thoroughly. The description adds minimal value by listing some parameters (firm, agency, topic, year) but does not provide additional syntax, format details, or constraints beyond what the schema specifies. Baseline 3 is appropriate when schema does the heavy lifting.
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 specific action ('Search SBIR/STTR awards') and resource ('federal R&D contracts to small businesses'), distinguishing it from sibling tools like 'search_sbir_firms' (which searches firms) and 'sbir_stats' (which provides statistics). It provides precise scope by mentioning what can be searched: 'by firm, agency, topic, or year'.
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 usage context by listing searchable fields (firm, agency, topic, year), but it does not explicitly state when to use this tool versus alternatives like 'search_sbir_firms' or 'get_sbir_firm_details'. No guidance on prerequisites, exclusions, or specific scenarios is provided, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sbir_firmsC
Search SBIR/STTR firms (small businesses receiving federal R&D funding). Find innovative companies by keyword, name, or location.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | No | Search keyword (searches company name and other fields) | |
| name | No | Company name to search | |
| state | No | State abbreviation (e.g., 'CA', 'TX', 'NY') | |
| womanOwned | No | Filter for woman-owned businesses | |
| hubzone | No | Filter for HUBZone businesses | |
| limit | No | Max results (default 50, max 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It implies a read-only search operation but doesn't mention pagination, rate limits, authentication requirements, or what the return format looks like (e.g., list of firms with basic info). For a search tool with 6 parameters and no output schema, this leaves significant gaps in understanding how results are structured and delivered.
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 efficiently structured in two sentences: the first establishes purpose and scope, the second lists search criteria. Every word contributes directly to understanding the tool's function without redundancy or fluff.
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 6 parameters, no annotations, and no output schema, the description is incomplete. It adequately explains what the tool searches for but fails to address critical behavioral aspects like result format, pagination, error handling, or how filters combine. For a search tool with multiple boolean filters and a limit parameter, more context is needed to use it effectively.
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 the schema fully documents all 6 parameters. The description adds minimal value beyond the schema by listing searchable fields (keyword, name, location) but doesn't clarify parameter interactions (e.g., whether 'keyword' and 'name' are combined) or provide examples beyond what's in the schema descriptions. Baseline 3 is appropriate when schema does the heavy lifting.
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 for SBIR/STTR firms using specific criteria (keyword, name, location) and identifies the target resource as small businesses receiving federal R&D funding. It distinguishes from sibling tools like 'search_sbir_awards' by focusing on firms rather than awards, though it doesn't explicitly contrast with 'get_sbir_firm_details' which retrieves details for specific firms.
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 no guidance on when to use this tool versus alternatives like 'get_sbir_firm_details' (for details on known firms) or 'search_sbir_awards' (for searching awards). It mentions searchable fields but offers no context about prerequisites, typical use cases, or exclusions.
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.
6 tool updates
v1.0.0- First observed
check_size_standard - First observed
get_sbir_firm_details - First observed
get_size_standards - First observed
sbir_stats - First observed
search_sbir_awards - First observed
search_sbir_firms
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose with no overlap: checking size qualification, retrieving firm details, getting size standards, accessing statistics, searching awards, and searching firms. The descriptions specify unique resources and actions, making misselection unlikely.
The naming is mostly consistent with a verb_noun pattern (e.g., check_size_standard, get_size_standards, search_sbir_awards), but there is a minor deviation with 'sbir_stats' which omits a verb prefix. Overall, the pattern is readable and predictable.
With 6 tools, the server is well-scoped for its SBA/SBIR domain. Each tool serves a specific, necessary function related to small business standards and federal R&D funding, with no redundant or trivial additions.
The tool set covers core SBA and SBIR operations well, including checking standards, retrieving data, and searching for firms and awards. A minor gap exists in update or management functions (e.g., modifying data), but these are likely outside the server's read-only scope, and agents can work effectively with the provided tools.
Maintenance
Related MCP Connectors
SBIR MCP — wraps the SBIR.gov public API (free, no auth)
Government contract search and federal procurement data: SAM.gov opportunities + USASpending awards.
SAM.gov contract opportunities and entity lookup (BYOK) plus USASpending federal award data.
Research U.S. federal contracts, awards, vendors, changes, exclusions, and source documents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceFederal procurement intelligence toolkit that searches SAM.gov contract opportunities, analyzes agency spending patterns, tracks competitor wins, and monitors small business set-aside programs (8a, HUBZone, SDVOSB, WOSB). 4 tools using SAM.gov and USASpending.gov data.3-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to search federal contracts, analyze agency spending, track competitor wins, and monitor small business set-aside opportunities using SAM.gov, USASpending.gov, and FPDS data.-
- AlicenseBqualityAmaintenanceEnables searching and filtering federal contract opportunities by keyword, agency, set-aside, NAICS, and more from any MCP client. Analyzes solicitations for small-business fit and risk, and provides reference lookups for NAICS codes, set-asides, and federal thresholds.9MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to search and retrieve federal small business research and technology transfer award data, including keyword, company, agency, and phase queries, via a free public API without authentication.1 npmMIT