Connector & Tool Catalog
Version: 1.1.1 | Last verified against source: 2026-08-28
This is the canonical map of how tools enter a OneRingAI agent. It answers three questions that are easy to conflate:
- Which connectors can OneRingAI configure?
- Which connectors receive purpose-built tools?
- Which tools exist without a connector?
For authentication fields and credential URLs, see the complete vendor reference. For tool parameters and longer examples, see Tools & Function Calling.
The four tool sources
| Source | How it is added | Examples |
|---|---|---|
| Application tools | Pass ToolFunction[] to Agent.create({ tools }) or register with agent.tools |
Your business logic, database queries, internal APIs |
| Generated built-ins | Import individual exports or resolve them through ToolRegistry / ToolCatalogRegistry |
Filesystem, shell, desktop, routines, custom-tool management, web_fetch |
| Context-plugin tools | Enabled by context.features or a custom context plugin |
store_*, memory_*, tool_catalog_*, todo_* |
| Connector tools | ConnectorTools.for(connectorName) |
Authenticated generic API calls plus specialized GitHub, Slack, Microsoft, Google, media, search, and other packs |
agent.tools and agent.context.tools are the same ToolManager instance, so
permissions, circuit breakers, execution plugins, enable/disable state, and
events apply regardless of where a tool came from.
What every service connector gets
When a connector has a baseURL, ConnectorTools.for(name) creates a generic
authenticated API tool:
{connectorName}_api({ method, endpoint, body?, queryParams?, headers? })
The tool:
- uses the connector as the single source of truth for authentication;
- prevents the LLM from overriding protected auth headers;
- supports
GET,POST,PUT,PATCH, andDELETE; - binds
userIdand optionalaccountIdthroughToolContext; - inherits connector retry, timeout, circuit-breaker, and metrics behavior;
- uses
sessionpermission scope by default.
If a specialized factory exists for the connector's serviceType, its tools
are appended automatically. All returned tool names are prefixed with the
actual connector name, so a base tool such as send_email becomes
work_google_send_email for a connector named work-google.
First-party specialized connector packs
Names below are base names. ConnectorTools.for() prefixes every name with
the connector name and also includes {connectorName}_api when a baseURL is
present.
| Service type | Dedicated tools | Base tool names |
|---|---|---|
github |
8 | search_files, search_code, read_file, list_branches, get_pr, pr_files, pr_comments, create_pr |
slack |
10 | list_channels, get_channel_info, set_channel_topic, get_messages, get_thread, post_message, search_messages, get_mentions, add_reaction, get_users |
microsoft |
11 | create_draft_email, send_email, create_meeting, edit_meeting, get_meeting, list_meetings, find_meeting_slots, get_meeting_transcript, read_file, list_files, search_files |
google-api |
11 | create_draft_email, send_email, create_meeting, edit_meeting, get_meeting, list_meetings, find_meeting_slots, get_meeting_transcript, read_file, list_files, search_files |
telegram |
6 | telegram_get_me, telegram_get_chat, telegram_send_message, telegram_send_photo, telegram_get_updates, telegram_set_webhook |
twilio |
4 | send_sms, send_whatsapp, list_messages, get_message |
zoom |
3 | zoom_create_meeting, zoom_update_meeting, zoom_get_transcript |
Web search and scraping
| Service types | Dedicated tool | Notes |
|---|---|---|
serper, brave-search, tavily, rapidapi-search |
web_search |
All four have built-in vendor templates |
zenrows, jina-reader, firecrawl, scrapingbee |
web_scrape |
ZenRows has a built-in template; the other service types can be used with manually configured connectors |
web_fetch is different: it is a connector-free built-in for ordinary HTTP
fetching and document conversion. Use a search connector to discover URLs and a
scrape connector when sites require a rendering or anti-bot service.
AI media connectors
AI model connectors use vendor, rather than an external-service template.
Their media factories are also discovered by ConnectorTools.for():
| AI vendor | Dedicated media tools |
|---|---|
| OpenAI | generate_image, generate_video, video_status, text_to_speech, speech_to_text |
generate_image, generate_video, video_status, text_to_speech |
|
| xAI / Grok | generate_image, generate_video, video_status |
The external Google Workspace template uses service type google-api; the AI
provider connector uses vendor google. They are intentionally separate so a
Gemini key and a user's Google Workspace OAuth identity do not get conflated.
All 50 external-service templates
Every template below currently declares a baseURL, so it receives the generic
authenticated API tool. “Dedicated” means the specialized pack is added too.
| Category | Template | ID / service type | Tool surface from ConnectorTools.for() |
|---|---|---|---|
| Major vendors | Microsoft | microsoft |
Generic API + 11 Microsoft Graph tools |
| Major vendors | Google Workspace | google-api |
Generic API + 11 Gmail/Calendar/Meet/Drive tools |
| Communication | Slack | slack |
Generic API + 10 Slack tools |
| Communication | Discord | discord |
Generic API |
| Communication | Telegram | telegram |
Generic API + 6 Telegram tools |
| Communication | X (Twitter) | twitter |
Generic API |
| Communication | Zoom | zoom |
Generic API + 3 Zoom tools |
| Communication | HeyReach | heyreach |
Generic API |
| Development | GitHub | github |
Generic API + 8 GitHub tools |
| Development | GitLab | gitlab |
Generic API |
| Development | Bitbucket | bitbucket |
Generic API |
| Development | Jira | jira |
Generic API |
| Development | Linear | linear |
Generic API |
| Development | Asana | asana |
Generic API |
| Development | Trello | trello |
Generic API |
| Productivity | Notion | notion |
Generic API |
| Productivity | Airtable | airtable |
Generic API |
| Productivity | Confluence | confluence |
Generic API |
| Productivity | Cal.com | cal-com |
Generic API |
| Productivity | Calendly | calendly |
Generic API |
| CRM | Salesforce | salesforce |
Generic API |
| CRM | HubSpot | hubspot |
Generic API |
| CRM | Pipedrive | pipedrive |
Generic API |
| Payments | Stripe | stripe |
Generic API |
| Payments | PayPal | paypal |
Generic API |
| Payments | QuickBooks | quickbooks |
Generic API |
| Payments | Ramp | ramp |
Generic API |
| Cloud | Amazon Web Services | aws |
Generic API; callers remain responsible for choosing an appropriate endpoint/signing setup |
| Cloud | Cloudflare | cloudflare |
Generic API |
| Storage | Dropbox | dropbox |
Generic API |
| Storage | Box | box |
Generic API |
| SendGrid | sendgrid |
Generic API | |
| Mailchimp | mailchimp |
Generic API | |
| Postmark | postmark |
Generic API | |
| Mailgun | mailgun |
Generic API | |
| EmailBison | emailbison |
Generic API | |
| Monitoring | Datadog | datadog |
Generic API |
| Monitoring | PagerDuty | pagerduty |
Generic API |
| Monitoring | Sentry | sentry |
Generic API |
| Search | Serper | serper |
Generic API + web_search |
| Search | Brave Search | brave-search |
Generic API + web_search |
| Search | Tavily | tavily |
Generic API + web_search |
| Search | RapidAPI Web Search | rapidapi-search |
Generic API + web_search |
| Scrape | ZenRows | zenrows |
Generic API + web_scrape |
| Other | ipinfo | ipinfo |
Generic API |
| Other | Clay | clay |
Generic API |
| Other | Twilio | twilio |
Generic API + 4 Twilio tools |
| Other | Zendesk | zendesk |
Generic API |
| Other | Intercom | intercom |
Generic API |
| Other | Shopify | shopify |
Generic API |
Templates configure authentication and sensible endpoint defaults; they do not
claim to model every operation of every vendor. For generic-only services, use
the authenticated API tool, call Connector.fetch() directly, or register a
domain-specific factory with ConnectorTools.registerService().
Generated connector-free built-ins
ToolRegistry.getBuiltInTools() currently exposes 39 generated entries in
eight categories. These are the stable registry entries; optional plugin and
connector tools are intentionally discovered at runtime instead.
| Category | Count | Tools |
|---|---|---|
| Filesystem | 6 | read_file, write_file, edit_file, glob, grep, list_directory |
| Shell | 5 | bash, bg_process_kill, bg_process_list, bg_process_output, dev_server |
| Desktop | 11 | desktop_screenshot, desktop_get_cursor, desktop_get_screen_size, desktop_keyboard_key, desktop_keyboard_type, desktop_mouse_click, desktop_mouse_drag, desktop_mouse_move, desktop_mouse_scroll, desktop_window_focus, desktop_window_list |
| Code | 1 | execute_javascript |
| JSON | 1 | json_manipulate |
| Web | 1 | web_fetch |
| Custom-tool management | 6 | custom_tool_draft, custom_tool_test, custom_tool_save, custom_tool_load, custom_tool_list, custom_tool_delete |
| Routines | 8 | generate_routine, routine_get, routine_list, routine_update, routine_delete, routine_get_task_steps, routine_update_task, routine_list_executions |
Context-plugin and dynamic tools
| Feature / system | Tool surface |
|---|---|
Any enabled IStoreHandler plugin |
Five shared tools: store_get, store_set, store_delete, store_list, store_action |
memory: true |
Six reads: memory_recall, memory_graph, memory_search, memory_search_documents, memory_find_entity, memory_list_facts |
memoryWrite: true |
Six writes: memory_remember, memory_link, memory_upsert_entity, memory_forget, memory_restore, memory_set_agent_rule |
evidence: true |
evidence_read (bounded exact JSON) and evidence_list (metadata only); scope/durability guide |
toolCatalog: true |
tool_catalog_search, tool_catalog_load, tool_catalog_unload |
userInfo: true |
todo_add, todo_update, todo_remove in addition to the shared store tools |
| Agent orchestrator | assign_turn, delegate_interactive, send_message, list_agents, destroy_agent |
| MCP clients | Whatever tool definitions the connected MCP servers advertise |
Custom context plugins can provide instructions, content, tools, persisted
state, compaction, and an IStoreHandler. Custom tool execution plugins do not
add tools; they wrap execution with logging, analytics, argument transforms,
caching, UI updates, or other policies.
Discovery APIs
import {
ConnectorTools,
ToolRegistry,
ToolCatalogRegistry,
listVendors,
} from 'oneringai';
// The 50 configured auth templates.
const templates = listVendors();
// Generic + specialized tools for one configured connector.
const githubTools = ConnectorTools.for('work-github');
// Every configured external connector that currently resolves to tools.
const byConnector = ConnectorTools.discoverAll();
// Service types with a registered specialized factory.
const specializedServices = ConnectorTools.listSupportedServices();
// Generated built-ins only, connector tools only, or their runtime union.
const builtIns = ToolRegistry.getBuiltInTools();
const connectorTools = ToolRegistry.getAllConnectorTools();
const allVisibleTools = ToolRegistry.getAllTools();
// Resolve scoped catalog categories for an application/tool picker.
const resolved = ToolCatalogRegistry.resolveTools(/* category scope */);
ConnectorTools.discoverAll() and ToolRegistry.getAllConnectorTools() inspect
configured connector instances, not every possible template. A template does
not become a live connector until the application creates or restores one.
Identity, scoping, and permissions
- Use
identitieson an agent to declare which connector names/accounts are visible to that agent. - Use
Connector.scoped()with anIConnectorAccessPolicyfor tenant- or user-specific registry views. - Use
accountIdfor multiple accounts under one named connector. - Use
actAsonly for the Microsoft/Google URL-scoped tools that support the on-behalf-of lock; tenant-global search/Drive/free-busy endpoints follow the underlying token's visibility. - Connector tools still pass through
ToolManager, so the normal permission policy chain, user rules, approval scopes, circuit breakers, and execution plugins apply.
Related documentation
- Connectors & Authentication
- Tools & Function Calling
- External API Integration
- Vendor Templates
- Tool Catalog
- Tool Permissions
Execution outcomes and cancellation
The shared ToolManager exposes additive executeWithOutcome() metadata and
per-execution signals. Generic authenticated API tools forward ToolContext.signal
to Connector.fetch(). Caller cancellation is composed with connector deadlines
and remains effective during native response-body reading and retry backoff.
Specialized tools and transports must forward/observe signals themselves; local
cancellation does not guarantee remote effect prevention.
Connector header-timeout and retry defaults remain unchanged. Optional
timeoutScope: 'operation' includes token waiting, retries, and body consumption;
optional retryPolicy: 'safe' permits retries only for eligible GET/HEAD/OPTIONS.
skipRetry skips network and status retries. Consume or cancel response bodies.
See Tool outcomes and cancellation for
outcome provenance, uncertainty, raw-result compatibility, and examples.