Tool catalog
A reference list of the tool names LLM agents commonly expose, tagged
with a default risk rating you can use as a starting point when you
register @sensitive patterns.
The catalog covers three sources that NullRun sees in production:
- LangChain built-in toolkits (
langchain-community— search, SQL, Gmail, Slack, GitHub, file system, vector stores, code interpreters) - Anthropic / OpenAI hosted tools (OpenAI code interpreter, e2b sandbox, Riza JS exec)
- MCP servers (official + community — filesystem, git, github, postgres, sqlite, redis, puppeteer, memory, time)
Names are normalised to snake_case — that's the convention
LangChain's docs recommend and every provider we tested parses.
Risk rating:
| Rating | Meaning |
|---|---|
low |
Read-only or reversible. Safe to call without a policy decision. |
medium |
Mutates external state but the change is reversible (issue created, draft email, S3 put). |
high |
Side effects you can't easily undo — files written or deleted, money moved, messages sent, code executed, infra changed. Mark @sensitive and route through a human approval gate. |
Search & retrieval
| Tool | Risk |
|---|---|
tavily_search, tavily_search_results_json |
low |
duckduckgo_search, duckduck_results_json |
low |
google_search, google_search_results_json |
low |
bing_search |
low |
brave_search |
low |
web_search, search_web |
low |
fetch, fetch_url |
low |
requests_get |
low |
wikipedia, arxiv, pubmed_search, semantic_scholar |
low |
news_search, search_news |
low |
requests_post, requests_put, requests_patch |
medium |
requests_delete |
high |
File system
| Tool | Risk |
|---|---|
read_file, file_read |
low |
list_directory, get_file_info, search_files, file_search |
low |
copy_file, create_directory |
medium |
write_file, file_write, create_file, edit_file |
high |
delete_file, file_delete, move_file |
high |
Code execution
Any tool that evaluates arbitrary code is high by definition —
the blast radius is the entire host or sandbox the agent reaches.
python_repl, python_repl_ast, execute_python,
code_interpreter (OpenAI built-in), e2b_code_interpreter,
execute_javascript (Riza), execute_code, run_command,
run_bash_command, terminal, bash, shell, repl — all
high. Register a blanket pattern (see the starter list below)
rather than enumerating them.
Databases
| Tool | Risk |
|---|---|
sql_db_schema, sql_db_query_checker, read_query (sqlite) |
low |
list_tables, describe_table |
low |
sql_db_query, query_sql_database, db_query |
medium |
redis_set |
medium |
execute_sql, run_sql, db_write, write_query, create_table |
high |
db_delete, redis_delete |
high |
Git & GitHub
| Tool | Risk |
|---|---|
git_status, git_diff, git_log |
low |
github_get_issue, github_get_pull_request, github_list_repos, github_get_file, github_search_code |
low |
github_create_issue, github_update_issue, github_close_issue, github_create_pull_request, github_create_repo, github_create_branch, git_add, git_checkout |
medium |
git_commit, github_merge_pull_request, github_push_files, github_delete_repo |
high |
Email & messaging
| Tool | Risk |
|---|---|
gmail_get_message, gmail_search, office365_search_emails, slack_get_channel, slack_get_messages |
low |
gmail_create_draft, office365_create_draft |
medium |
send_email, send_gmail, gmail_send_message, gmail_delete_message, office365_send_email, slack_send_message, slack_schedule_message, send_sms |
high |
Calendar & tasks
| Tool | Risk |
|---|---|
office365_search_events, get_calendar_events |
low |
office365_create_event, create_calendar_event, create_task, complete_task |
medium |
delete_calendar_event, delete_task |
high |
Cloud & infrastructure
| Tool | Risk |
|---|---|
s3_get_object, s3_list_objects, ec2_describe_instances, kubernetes_get |
low |
s3_put_object, docker_run |
medium |
s3_delete_object, s3_delete, ec2_start_instance, ec2_stop_instance, ec2_terminate_instance, lambda_invoke, kubernetes_apply, kubernetes_delete, docker_stop |
high |
Finance & payments
stripe_charge, stripe_create_customer, stripe_refund,
stripe_create_payment, create_invoice, send_payment — all
high. Reads only (get_balance_sheet, get_income_statement,
get_cash_flow) drop to low.
Memory & vector stores
| Tool | Risk |
|---|---|
vector_store_search, memory_retrieve, search_nodes |
low |
vector_store_add, memory_store, create_entities, add_observations |
medium |
vector_store_delete, memory_delete, delete_entities |
high |
Browser & scraping
| Tool | Risk |
|---|---|
puppeteer_screenshot, browser_screenshot, scrape_page, extract_content |
low |
puppeteer_navigate, puppeteer_click, puppeteer_fill, browser_navigate, browser_click |
medium |
puppeteer_evaluate |
high |
Note
puppeteer_evaluate runs JS in the browser page context — treat
it as high (cross-origin requests, DOM injection, credential
theft). browser_navigate and browser_click are medium
because they take actions on whatever URL the agent picks.
Recommended ToolBlock starter list
The SDK does not ship a built-in sensitive tool list (see
Sensitive tools for the rationale).
You express "this tool needs review" with a ToolBlock policy on
the server, evaluated by the gate on every /gate call. The
recommended starter patterns below map to that policy mechanism.
Create a ToolBlock policy in the dashboard under Policies → Tool policies → Create. The dashboard renders the canonical tool name for every framework integration so you can match against the right string:
{
"policies": [
{
"name": "Sensitive starter (matches the catalog)",
"type": "ToolBlock",
"scope": "Org",
"config": {
"tool_pattern": [
"stripe.*", "charge", "send_payment", "create_invoice", "refund",
"send_email", "send_gmail", "send_message", "send_sms",
"slack_send.*", "office365_send.*",
"delete_file", "file_delete", "write_file", "file_write",
"execute_sql", "run_sql", "db_write", "db_delete",
"write_query", "create_table",
"s3_delete.*", "ec2_terminate.*", "ec2_stop.*",
"lambda_invoke", "kubernetes_delete", "kubernetes_apply",
"python_repl.*", "bash", "shell", "terminal",
"execute_.*", "run_command", "run_bash_command",
"git_commit", "github_merge.*", "github_push.*", "github_delete.*",
"memory_delete", "vector_store_delete", "delete_entities"
]
}
}
]
}
Patterns are glob-matched against the tool name the agent requested,
case-insensitively — "Stripe.Charge" will match "stripe.*".
For finer-grained rules (e.g. "block refunds over $500", "require
approval for sends to non-@internal addresses"), use the Phase 1
typed BusinessImpact predicate (money_amount or
tool_parameters) — see
Human approval → typed predicates.
See also
- Sensitive tools — the policy- driven way to express "this tool needs review" (no built-in SDK list, all server-side via ToolBlock)
- Tool policies — glob patterns, per-tool block / allow rules
- Human approval — typed
BusinessImpactpredicates for narrower rules