# NASA TechPort MCP

> NASA TechPort connects your AI client directly to a massive database of aerospace and space technology research data. Use this server to search thousands of active/completed NASA projects, track open funding calls, and map out complex R&D taxonomies without writing boilerplate API code.

## Overview
- **Category:** the-unthinkable
- **Price:** Free
- **Tags:** nasa, space-tech, r-and-d, funding-opportunities, technology-transfer

## Description

Your AI client connects straight to **NASA TechPort**, giving you access to a massive database covering aerospace research and funding data across NASA's entire portfolio. You don't need to write boilerplate API code; your agent handles the connection, letting you search thousands of active or completed initiatives. This server lets you pull deep, structured insights into how space technology is funded and developed.

**Discovering Technology Projects and Statuses**

You can retrieve all metadata, current status updates, and full descriptions for any specific tech project using `get_project(ID)`. To get an overview of what's available, run `list_projects`, which requires you to specify an update date parameter. For the most detailed information on object types or data fields, check the structure with `get_schema` or pull a list of all possible field options using `get_enum`. You can perform really complex searches across multiple object types and criteria simultaneously by running `search_object_advanced`. If you need to search everything without knowing the specific object type, use `search_object_all_data`. To figure out what taxonomy tags fit a description, try `predict_trex`; if you're guessing at the relevant destination area for a project, run `predict_drex`.

**Tracking Funding Opportunities and Grants**

This server lets you find open grants and contracts. Use `list_opportunities` to see every current funding opportunity NASA TechPort is tracking. To narrow down those chances, use `search_opportunities`, filtering by focus area or maximum dollar amount. When you identify a specific chance, `get_opportunity(ID)` pulls all the detailed data points for that ID. You can also determine the absolute highest potential funding attached to any program using `get_max_funding_amount`. Once you've finished your analysis, pull out the full dataset of identified funding opportunities using `export_opportunities` for reporting or external work.

**Mapping Organizations and Programs**

You can map out who’s involved in these programs. Use `list_organizations` to get a list of participating groups, filtering them by location or type. When you need deep info on one group, like their role or full profile within NASA's system, run `get_organization(ID)`. If you just want the recognized categories—like 'university' or 'private company'—use `list_organization_types`. To get a general list of all major initiatives being tracked, use `list_programs`, which provides details for an entire program and its scope of work. You can also search for specific organizations by name, location, or type using `search_object`.

**Building the Technology Roadmap (Taxonomy)**

To understand how NASA organizes technologies, you'll use the taxonomy tools. Run `get_taxonomy_tree` to pull the complete, interconnected hierarchy of all NASA technologies in a structured tree format. If that’s too broad, run `list_taxonomies` to see the high-level root categories. You can then drill down into specific nodes using `list_taxonomy_nodes`, letting you filter by parent ID, level, or code.

**Advanced Searching and Utility Functions**

The server provides several ways to search: besides listing projects, running a general query against any object type works with `search_object`. For maximum reach, `search_object_all_data` searches every single field and object type in the database. To learn how this entire API is set up for your agent, you can retrieve the complete OpenAPI specification using `get_api_spec`. If you're not sure what values are valid for a certain field, run `list_enums` or use `get_enum` on that specific field name. The system also lets you list key contacts associated with TechPort via `list_contacts`, and if the API needs maintenance, you can send anonymous feedback using `submit_feedback`.

## Tools

### search_object_all_data
Runs a broad search across all available fields and object types in the entire database.

### list_organization_types
Shows a list of predefined types (e.g., university, private company) that organizations can fall under.

### list_organizations
Lists multiple organizations, allowing you to filter by type or location criteria.

### list_programs
Provides a list of all major NASA programs currently tracked in the database.

### list_projects
Lists available technology project IDs, requiring you to specify an update date parameter.

### list_taxonomies
Retrieves a list of high-level taxonomy root categories for navigation.

### export_opportunities
Pulls a dataset of identified funding opportunities for external analysis or reporting.

### get_api_spec
Retrieves the complete OpenAPI specification for this entire API server setup.

### get_enum
Returns a list of valid options (enumerations) for a specific field name, helping you structure your query.

### get_max_funding_amount
Determines the highest potential funding amount associated with an opportunity or program.

### get_nonce
Refreshes a user session nonce, which is necessary for keeping secure and stable connections.

### get_opportunity
Fetches all detailed data points related to one specific funding opportunity ID.

### get_organization
Retrieves comprehensive information about a single, identified organization participating in NASA programs.

### get_program
Gets detailed information for an entire NASA program and its scope of work.

### get_project
Retrieves all metadata, status, and details for a specific technology project ID.

### get_schema
Shows the exact data structure (object schema) used for a given object type in the API.

### get_taxonomy
Retrieves a root taxonomy node and all of its immediate children nodes.

### get_taxonomy_tree
Pulls the full, interconnected hierarchy of NASA technologies in a structured tree format.

### list_contacts
Lists key contacts associated with the overall TechPort system.

### list_enums
Provides a list of all possible enumerated values used across various fields in the API.

### list_opportunities
Lists all current funding opportunities available through NASA TechPort for review.

### list_taxonomy_nodes
Lists specific nodes within the taxonomy, filtering by parent ID, level, or code.

### predict_drex
Suggests relevant Destination Area classifications based on a project's description text.

### predict_trex
Recommends appropriate taxonomy tags for a given technology description, helping you categorize it.

### search_object_advanced
Performs detailed searches on an object type based on multiple, complex criteria (e.g., status AND year).

### search_object
Searches across all objects using a general query string against the object type.

### search_opportunities
Searches for funding opportunities that match specific criteria like focus area or maximum amount.

### search_organizations
Filters and finds organizations by matching provided names, locations, or types.

### submit_feedback
Sends anonymous feedback directly to the TechPort team for API improvements or corrections.

## Prompt Examples

**Prompt:** 
```
List all NASA technology projects that have been updated since 2024-01-01.
```

**Response:** 
```
I've found several projects updated since then. Here are the IDs: 14523, 14688, and 14701. Would you like me to fetch the details for any of these specific projects?
```

**Prompt:** 
```
Show me the full details for NASA project ID 94566.
```

**Response:** 
```
Project 94566 is titled 'Advanced Propulsion Concepts'. It is currently in the 'Active' stage and is led by the Marshall Space Flight Center. The primary goal is to develop high-efficiency thrusters for deep space missions.
```

**Prompt:** 
```
Search for funding opportunities related to 'autonomous robotics'.
```

**Response:** 
```
I found 2 opportunities matching 'autonomous robotics'. One is a Small Business Innovation Research (SBIR) call with a max funding of $150,000. Would you like the full criteria?
```

## Capabilities

### Discover and analyze technology projects
Retrieve detailed metadata, status updates, and descriptions for specific NASA tech projects using `get_project(ID)`.

### Find and export funding opportunities
Search for open grants and contracts based on criteria, then export the data set using `export_opportunities`.

### Map organizational roles and types
List all participating organizations or search specific ones to determine their type and role within a program via `get_organization(ID)`.

### Browse the technology roadmap structure
View the structured hierarchy of NASA technologies, getting a full taxonomy tree using `get_taxonomy_tree`.

### Search across all project data points
Run advanced searches against multiple object types and fields simultaneously using `search_object_advanced`.

## Use Cases

### A company needs to prove its research niche.
The engineer runs into a wall of general data. They ask their agent: 'Which organizations are working on autonomous robotics and have funding over $1M?' The agent uses `search_object_advanced` across both the organization type and the opportunity criteria, pulling back a clean list they can use for partnership pitches.

### An academic wants to avoid duplicating research.
A scientist needs to know if their proposed study overlaps with existing NASA work. They ask: 'Show me all projects related to advanced materials science in the past five years.' The agent uses `list_projects` with a date filter, followed by `get_project(ID)` on key results, giving the scientist immediate overlap data.

### A policy group is tracking investment trends.
The analyst needs to know which parts of space tech are getting attention. They ask: 'What are the top 5 most funded programs in deep space exploration?' The agent uses `list_programs` to get names, then runs `search_opportunities` against those specific program IDs to summarize investment flow.

### A team needs a quick data schema check.
The dev asks: 'What fields does an organization object have?' The agent immediately calls `get_schema(organization)` and returns the precise structure, saving time spent reading documentation or guessing field names.

## Benefits

- Find specific project data fast. Instead of browsing thousands of records, you can use `get_project(ID)` to pull every detail for a single tech initiative in seconds.
- Pinpoint funding gaps with precision. Use `search_opportunities` and then check the limits using `get_max_funding_amount` so you never miss a grant call.
- Map out the entire technological scope. The `get_taxonomy_tree` tool lets you see how all NASA tech areas connect, turning a massive list into an actionable map.
- Target your search effectively. Forget general searches; use `search_object_advanced` to query across multiple object types using complex filters (e.g., 'Active' AND 'Propulsion').
- Build data exports for reports. After finding the relevant opportunities, `export_opportunities` pulls a clean dataset you can hand straight over to management.

## How It Works

The bottom line is that your AI client acts as a specialized research librarian, handling API calls to pull structured R&D data instantly.

1. Subscribe to the server and provide your unique NASA API Key.
2. Ask your AI client a complex question, like: 'Find all active projects related to advanced propulsion funded by institutions in California.'
3. The agent calls multiple tools (`search_object_advanced`, `get_project`, etc.) sequentially, pulling only the required data and giving you one summarized answer.

## Frequently Asked Questions

**How do I find out if a project ID exists using get_project(ID)?**
The system returns full metadata immediately. If the ID is invalid or doesn't exist, it will return an error message stating that the record could not be found, preventing further queries.

**What should I use if I want to list all current funding opportunities? Do I need list_opportunities or search_opportunities?**
Start with `list_opportunities` for a master inventory. If you have specific criteria (like minimum funding amount or topic), then run `search_opportunities` to filter that large set down.

**Can I find out what fields are available when I search using search_object_advanced?**
You should first use `get_schema(Type)` for the specific object type you're interested in. This tells you exactly which fields and data formats are available before you write your complex query.

**I need to know what kinds of organizations exist at NASA.**
Run `list_organization_types` first. This gives you the valid categories (university, contractor, etc.) that you can then use when calling `list_organizations` or `search_organizations`.

**How do I ensure my session is secure before using tools like get_organization or list_programs?**
You must call `get_nonce()` first. This refreshes your unique user nonce, which guarantees a secure session token for all subsequent API calls you make.

**Before I run a complex query, how can I use get_schema to verify the data types of fields?**
Use `get_schema(object_type)` on the specific object type. It returns the full JSON schema definition, letting you validate inputs and understand required field formats before querying.

**When listing many records using list_projects, how do I handle pagination or rate limits?**
The API response includes pagination metadata. Check for a 'next page' token in the result set; include that parameter in your next call to retrieve all available projects.

**What is the best way to map out NASA’s entire technology roadmap using get_taxonomy_tree?**
Call `get_taxonomy_tree()` once. This provides a complete, structured tree view of every taxonomy node and relationship, giving you the full organizational context for R&D classification.

**How can I find detailed information about a specific NASA project if I have its ID?**
You can use the `get_project` tool by providing the specific `projectId`. The agent will return comprehensive metadata including the project's description, status, and lead organizations.

**Is it possible to search for active funding opportunities for space technology?**
Yes! Use the `search_opportunities` tool with your specific criteria. You can also use `list_opportunities` to see all current funding calls available in the TechPort system.

**Can I see the entire NASA technology taxonomy structure?**
Absolutely. Use the `get_taxonomy_tree` tool to retrieve the full hierarchical structure of NASA's technology areas, which helps in understanding how different projects are categorized.