TnsAI

Tool Catalog

tnsai-tools ships 59 function-shape POJO toolkits exposing roughly 206 @Tool-annotated methods across 29 categories. Each toolkit is a plain class with public methods annotated @Tool; the framework discovers them reflectively via ToolMethodRegistry and dispatches calls through ToolMethodDispatcher (the same path used for any user POJO registered with AgentBuilder.toolPojos(...)).

For creating your own toolkits, see Custom Tools.

Quick Start

The compile-safe path is BuiltInTool — pass enum constants and the framework instantiates the backing POJO for you:

import com.tnsai.agents.AgentBuilder;
import com.tnsai.enums.BuiltInTool;
import com.tnsai.llm.providers.OpenAIClient;

Agent agent = AgentBuilder.create()
    .llm(new OpenAIClient("gpt-4o"))
    .role(myRole)
    .builtInTools(
        BuiltInTool.WEB_SEARCH_TOOLS,   // brave_search, duckduckgo, wikipedia, …
        BuiltInTool.UTILITY_TOOLS,      // calculator, hash, datetime_*
        BuiltInTool.PDF_TOOLS           // pdf_extract_text, pdf_metadata, …
    )
    .build();

String response = agent.chat("What is the population of Tokyo? Triple it.");

The LLM sees every @Tool method on every registered toolkit as a callable function and dispatches by method name (brave_search, calculator, pdf_extract_text, …). Most toolkits read credentials from environment variables on first use:

export BRAVE_API_KEY=your-key
export OPENAI_API_KEY=your-key

How toolkits are organised

Each BuiltInTool enum entry maps a stable toolName to the FQCN of a POJO in tnsai-tools. The POJO's public @Tool-annotated methods are the actual functions exposed to the LLM. For example, BuiltInTool.CSV_TOOLS backs com.tnsai.tools.file.CsvTools, which exposes csv_summary, csv_columns, csv_filter, csv_head, csv_search.

Tables below list each toolkit's enum constant, backing class, the methods it exposes, and any required environment variables. Method names are what the LLM will see and call.

Web search, scraping, and specialised lookups.

EnumMethodsAPI key
WEB_SEARCH_TOOLSduckduckgo, wikipedia, wikidata, searxng, npm, maven_central, brave_search, serpapi, tavily, exaPer-provider (none for the first six; BRAVE_API_KEY, SERPAPI_API_KEY, TAVILY_API_KEY, EXA_API_KEY for the last four)
WEB_SCRAPING_TOOLSweb_scraper, firecrawlFIRECRAWL_API_KEY (firecrawl only)
QNA_TOOLShackernews, stackoverflow_searchNone
SPECIALIZED_SEARCH_TOOLSyahoo_finance_lookup, yahoo_finance_news, wolfram_alphaWOLFRAM_APP_ID (wolfram only)

academic

Free / freemium scholarly databases.

EnumMethodsAPI key
ACADEMIC_TOOLSarxiv_search, pubmed_search, semantic_scholar_search, openalex_search, crossref_search, dblp_searchNone
ACADEMIC_EXTRA_TOOLSorcid_search, orcid_get, unpaywall_lookup, biorxiv_recentNone

file

Text and structured-document parsing.

EnumMethodsNotes
CSV_TOOLScsv_summary, csv_columns, csv_filter, csv_head, csv_searchAccepts file path or literal CSV string
JSON_TOOLSjson_queryJayway JsonPath against file or literal JSON
XML_TOOLSxml_queryXPath against XML
PDF_TOOLSpdf_extract_text, pdf_extract_pages, pdf_metadata, pdf_merge, pdf_to_imagePDFBox-backed
MARKDOWN_TOOLSmarkitdownConvert any supported source to Markdown
FILE_IO_TOOLSfile_read, file_writeSandboxed by Role policy

CSV_TOOLS — example

CsvTools is the canonical example for the function-shape pattern. The five methods below are independent — the LLM picks the one it needs.

Agent agent = AgentBuilder.create()
    .llm(new OpenAIClient("gpt-4o"))
    .role(myRole)
    .builtInTools(BuiltInTool.CSV_TOOLS)
    .build();

agent.chat("Summarise /data/sales.csv and list the column headers.");
// LLM emits two tool calls: csv_summary("/data/sales.csv") then csv_columns(...)
MethodPurposeNotes
csv_summaryRow/column counts plus per-column dtype/null statsDefault for "describe this CSV" prompts
csv_columnsExtract a subset of columns by nameCase-insensitive; falls back to numeric index
csv_filterRows where a column's value contains a substringCase-insensitive substring, capped at 100 rows
csv_headFirst N rows as a Markdown ASCII table
csv_searchAll rows where any cell contains the termCapped at 100 rows

The methods accept typed parameters (path, column name, etc.) — there's no path|||command text protocol any more. Each method is a regular Java method whose signature defines the LLM-facing schema (via @Tool and @ToolParam).

communication

Email, chat, and SMS sending.

EnumMethodsConfig
EMAIL_TOOLSsmtp_send, gmail_send, gmail_inboxSMTP_HOST / SMTP_USER / SMTP_PASS (SMTP); GMAIL_OAUTH_TOKEN (Gmail)
MESSAGING_TOOLSslack_post, discord_post, twilio_sms_send, twilio_sms_statusSLACK_WEBHOOK_URL, DISCORD_WEBHOOK_URL, TWILIO_SID + TWILIO_TOKEN

fintech

Payment and BNPL platforms.

EnumMethodsAPI key
SQUARE_TOOLSsquare_create_payment, square_list_payments, square_create_invoice, square_create_customer, square_search_catalogSQUARE_ACCESS_TOKEN
CASH_APP_PAY_TOOLScashapp_create_request, cashapp_get_request, cashapp_cancel_requestCASHAPP_CLIENT_ID + secret
LIGHTNING_TOOLSlightning_create_invoice, lightning_pay_invoice, lightning_decode_invoiceLN_API_URL + macaroon
AFTERPAY_TOOLSafterpay_create_checkout, afterpay_capture_payment, afterpay_get_orderAFTERPAY_API_KEY
PAYMENT_ANALYTICS_TOOLSpayment_revenue_summaryVaries (cross-processor)

commerce

Storefront APIs.

EnumMethodsAPI key
SHOPIFY_TOOLSshopify_search, shopify_get_productSHOPIFY_API_KEY + shop domain
ETSY_TOOLSetsy_search, etsy_get_listing, etsy_get_shopETSY_API_KEY

crm

Customer-relationship platforms.

EnumMethodsAPI key
HUBSPOT_TOOLShubspot_list_contacts, hubspot_get_contact, hubspot_create_contactHUBSPOT_ACCESS_TOKEN
SALESFORCE_TOOLSsalesforce_query, salesforce_search, salesforce_get_sobjectSF_ACCESS_TOKEN + instance URL

database

Relational, document, key-value, and vector stores.

EnumMethodsConfig
SQL_TOOLSsql_queryJDBC_URL + driver on classpath
MONGO_TOOLSmongo_find, mongo_countMONGO_URI
REDIS_TOOLSredis_get, redis_keys, redis_ttl, redis_set, redis_delREDIS_URL
QDRANT_TOOLSqdrant_collections, qdrant_count, qdrant_search, qdrant_create_collection, qdrant_upsertQDRANT_URL (+ optional API key)
WEAVIATE_TOOLSweaviate_classes, weaviate_count, weaviate_search, weaviate_create_class, weaviate_upsertWEAVIATE_URL

developer

Repo, dependency, and project introspection.

EnumMethodsAPI key
DEVELOPER_TOOLSgithub_search_repos, github_search_code, github_search_issues, github_search_users, jshell_evalGITHUB_TOKEN (optional, raises rate limit)
DEPENDENCY_TOOLSdependency_latest, dependency_compare, project_detect_typeNone
PROJECT_ANALYZER_TOOLSproject_tree, project_stats, project_languagesNone

productivity

Calendars, task trackers, docs.

EnumMethodsAPI key
GOOGLE_TOOLSgcal_list_events, gcal_get_event, gcal_create_event, gdrive_list_files, gdrive_read_file, gdrive_create_fileGOOGLE_OAUTH_TOKEN
JIRA_TOOLSjira_search, jira_get_issue, jira_create_issue, jira_transition_issueJIRA_BASE_URL + JIRA_API_TOKEN
NOTION_TOOLSnotion_search, notion_get_page, notion_query_database, notion_create_pageNOTION_TOKEN
TRELLO_TOOLStrello_list_boards, trello_get_board, trello_list_cards, trello_create_card, trello_move_cardTRELLO_KEY + TRELLO_TOKEN

media

Audio and TTS.

EnumMethodsAPI key
MEDIA_TOOLSwhisper_transcribe, openai_ttsOPENAI_API_KEY
CHATTERBOX_TOOLSchatterbox_ttsCHATTERBOX_API_KEY

social

Social-network APIs.

EnumMethodsAPI key
TWITTER_TOOLStwitter_search, twitter_user, twitter_timelineX_BEARER_TOKEN
REDDIT_TOOLSreddit_search, reddit_subreddit_posts, reddit_post_commentsREDDIT_CLIENT_ID + REDDIT_CLIENT_SECRET
LINKEDIN_TOOLSlinkedin_me, linkedin_shareLINKEDIN_ACCESS_TOKEN

ai

Multimodal helpers.

EnumMethodsAPI key
VISION_TOOLSimage_analyzeGEMINI_API_KEY

code

Code execution through the framework's Sandbox SPI. Both built-in tools route through SandboxFactory.byId("process") by default with ResourceLimits.standard() + NetPolicy.denyAll(). Pass an explicit SandboxFactory + image-bearing SandboxSpec via the full-control constructors for container / WASM / Firecracker isolation.

EnumMethodsHost requirement
JS_EXECUTION_TOOLSjs_executenode on PATH
PYTHON_EXECUTION_TOOLSpython_execute, python_versionpython3 on PATH
E2B_SANDBOX_TOOLSe2b_create, e2b_execute, e2b_upload, e2b_download, e2b_install, e2b_list, e2b_killE2B_API_KEY

utility

Math, hashing, datetime, encoding.

EnumMethodsAPI key
UTILITY_TOOLScalculator, hash, datetime_now, datetime_diff, datetime_addNone
ENCODING_TOOLSqr_generate, qr_base64, qr_read, google_translateGOOGLE_TRANSLATE_API_KEY (translate only)

diagram

Diagram-as-code rendering.

EnumMethodsAPI key
DIAGRAM_TOOLSmermaid_render, excalidraw_generateNone

document

DOCX / Office / image conversion.

EnumMethodsAPI key
DOCUMENT_TOOLSdocument_read, markdown_to_html, image_convert, image_info, slides_createNone

visualization

Charts, tables, infographics.

EnumMethodsAPI key
VISUALIZATION_TOOLSchart_ascii, table_format, infographic_templatesNone

realtime

Live FX, crypto, weather feeds.

EnumMethodsAPI key
REALTIME_TOOLScrypto_price, fx_rates, fx_convert, weather_currentNone (CoinGecko / Frankfurter / OpenWeatherMap public)

finance

Borsa Istanbul market data.

EnumMethodsAPI key
FINANCE_TOOLSbist_quote, bist_index, bist_fx, bist_goldNone

trading

Prediction markets.

EnumMethodsAPI key
TRADING_TOOLSpolymarket_markets, polymarket_search, polymarket_pricesNone (read-only)

scraping

Apify actor execution.

EnumMethodsAPI key
SCRAPING_TOOLSapify_run_actor, apify_search_actors, apify_actor_infoAPIFY_TOKEN

knowledge

In-memory knowledge graph.

EnumMethodsAPI key
KNOWLEDGE_TOOLSkg_extract_entities, kg_extract_relations, kg_add_triple, kg_queryNone

memory

Persistent recall.

EnumMethodsAPI key
MEMORY_TOOLSreever_store, reever_recall, reever_searchNone (Reever-backed)

goose

Desktop automation.

EnumMethodsAPI key
GOOSE_TOOLSgit_status, git_log, git_diff, git_branches, screenshot, system_infogit on PATH
CLIPBOARD_TOOLSclipboard_read_text, clipboard_write_textNone (headless-aware)

project

Repo-level read helpers.

EnumMethodsAPI key
PROJECT_TOOLSproject_context, project_read_file, agentsmd_parse, agentsmd_generateNone (sandboxed by Role policy)

agentsmd_parse returns an AgentsMdContent record (intro + ordered sections: [{level, title, body}]) parsed from AGENTS.md, with case-variant + CLAUDE.md + README.md fallback. Use this when an agent needs to route on individual sections (e.g. pull the "Setup" body) rather than the whole document. agentsmd_generate produces a draft AGENTS.md by detecting the build system from pom.xml / package.json / pyproject.toml / Cargo.toml / go.mod and filling in language-appropriate setup + test commands — returns the markdown string, the caller decides whether to write it.

system

HTTP and tool discovery.

EnumMethodsAPI key
SYSTEM_TOOLShttp_request, tool_searchNone

Direct instantiation

If you need to register a toolkit outside the AgentBuilder.builtInTools(...) path — for example, from a plugin loader — every entry has a no-arg instantiate() method that returns a fresh POJO ready for ToolMethodRegistry:

Object csvToolkit = BuiltInTool.CSV_TOOLS.instantiate();
// csvToolkit is a com.tnsai.tools.file.CsvTools instance

instantiate() throws BuiltInToolInstantiationException if tnsai-tools is missing from the classpath (the FQCN string isn't resolvable) or if the POJO's public no-arg constructor fails.

Authoritative source

The full per-toolkit Javadoc — including every @Tool method's exact signature and the corresponding @ToolParam constraints — lives in com.tnsai.enums.BuiltInTool and the backing POJOs under com.tnsai.tools.*.

On this page