Nasa

Learn how to use Nasa with Composio

Overview

SLUG: NASA

Description

NASA offers a suite of APIs providing access to a wide range of data, including Earth science, planetary imagery, and technology transfer information.

Authentication Details

generic_api_key
stringRequired
generic_api_key
stringRequired

Connecting to Nasa

Create an auth config

Use the dashboard to create an auth config for the Nasa toolkit. This allows you to connect multiple Nasa accounts to Composio for agents to use.

1

Select App

Navigate to Nasa.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Nasa Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4nasa_auth_config_id = "ac_YOUR_NASA_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": user_api_key}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Nasa for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, nasa_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Nasa toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["NASA"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Get CMR Collections

Description

Tool to retrieve collections from the common metadata repository (cmr). use when you need to search nasa science data collections by spatial, temporal, or metadata filters. call after confirming search criteria.

Action Parameters

bounding_box
string
circle
string
concept_id
string
instrument
string
keyword
string
page_num
integerDefaults to 1
page_size
integerDefaults to 10
platform
string
polygon
string
provider
string
short_name
string
temporal
string
version
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get CMR Granules

Description

Tool to retrieve granules from the common metadata repository (cmr). use when you need granule metadata filtered by collection ids, spatial, or temporal criteria. call after confirming your filters.

Action Parameters

bounding_box
string
concept_id
string
page_num
integer
page_size
integer
provider
string
short_name
string
time_end
string
time_start
string
version
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get EONET Categories

Description

Tool to retrieve a list of all event categories from eonet. use when you need current category ids, titles, descriptions, and info links.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get EONET Events (ATOM)

Description

Tool to retrieve a list of natural events in atom format. use when you need a machine-readable xml feed of recent natural events from eonet.

Action Parameters

bbox
string
category
string
days
integer
end
string
limit
integer
magMax
number
magMin
number
mag_id
string
source
string
start
string
status
stringDefaults to open

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get EONET Events RSS

Description

Tool to retrieve a list of natural events in rss format. use when you need the latest eonet events as an rss feed.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get EONET Layers

Description

Tool to retrieve available data layers for event visualization. use after confirming category id if filtering.

Action Parameters

category
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: GET EONET Magnitudes

Description

Tool to retrieve a list of available event magnitudes and their descriptions. use after determining you need valid magnitude filters before querying events data.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get EONET Sources

Description

Tool to retrieve a list of event sources. use when you need to enumerate available sources before querying events.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: GET EONET Source by ID

Description

Tool to retrieve details for a specific eonet event source by id. use when you need to fetch source metadata (id, title, homepage) before querying events.

Action Parameters

source_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Mars Rover Photos

Description

Tool to fetch photos taken by a specified mars rover on a given martian sol. use after selecting rover and sol.

Action Parameters

api_key
string
camera
string
page
integer
rover_name
stringRequired
sol
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Search Near Earth Objects

Description

Tool to search near-earth objects by closest approach date range. use when identifying asteroids in a date window (max 7 days).

Action Parameters

end_date
string
start_date
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Search SVS Visualizations

Description

Tool to search for visualizations in the scientific visualization studio (svs). use when you need to query svs visualizations by keywords or mission filters.

Action Parameters

limit
integerDefaults to 100
missions
array
offset
integer
search
string

Action Response

data
objectRequired
error
string
successful
booleanRequired