Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/celigo/ai/building-toolsnpx skills add celigo/ai --skill building-toolsgit clone --depth 1 https://github.com/celigo/aiWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/celigo/ai/building-tools)<a href="https://agentmods.dev/skills/celigo/ai/building-tools"><img src="https://agentmods.dev/badge/skills/celigo/ai/building-tools.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00057 | $0.04683 |
| Opus 5 | $0.00028 | $0.02341 |
| Sonnet 5 | $0.00011 | $0.00937 |
| Haiku 4.5 | $0.00006 | $0.00468 |
Grade A, and why
building-tools scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 309 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Building Tools
A tool is Celigo's first-class reusable building block. It encapsulates logic -- lookups, imports, transforms, branching -- behind a defined input and output contract. Build it once, use it everywhere: from Flows, APIs, AI Agents, MCP Servers, and other Tools.
Tool Concepts
Why tools exist: Without tools, users build the same lookup-transform-import patterns repeatedly across Flows, APIs, and Agents. Tools solve this by providing a governed, composable abstraction: one definition, many consumers, consistent behavior.
When to build a tool:
- You're building an MCP server -- MCP servers expose tools as endpoints; every piece of logic an MCP server offers must be a tool
- The same logic is needed by 2+ consumers (flows, APIs, agents, MCP servers) -- build once, call everywhere
- You want connection flexibility -- callers can pass different connections to the same tool definition
- You're composing smaller pieces -- tools can call other tools for nested orchestration
When NOT to build a tool:
- The logic is specific to one flow or API and won't be reused -- inline it as a lookup/import processor directly
- You need abstract/instance templating for multi-tenant patterns -- use abstract flows
Tool vs API: the split is how the work gets invoked. An API is reachable from outside Celigo over HTTP (a partner system, a customer-facing app). A tool is reachable only from inside Celigo (flow steps, AI agents, APIs, other tools). If a recipe must be reachable from both, build it as a tool and expose the tool behind an API endpoint -- the tool stays available to inside-Celigo consumers at the same time.
Tool vs flow: tools don't start themselves -- no schedule, no listeners, no flow runtime controls (proceedOnFailure and friends are the consumer's concern), and no abstract/instance layer (a tool is already the unit of reuse; per-environment variation is handled by the consumer-bound connection model). "Every night, do X" or "when a webhook arrives, do Y" is a flow -- the tool may be the thing the flow does.
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 309 lines · 57 tokens per session scan A dcdbf598f39e
building-tools is a skill published in the GitHub repository celigo/ai (3 stars, last pushed yesterday), licensed MIT. It adds 57 tokens to every session and 4,683 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
jira-ticket
Create a Jira issue via the Jira Cloud REST API. Requires JIRABASEURL, JIRAEMAIL, and JIRAAPITOKEN environment variables on the server. Trigger on: create a Jira ticket, raise a Jira issue, log a bug in Jira, open a story.
servicenow-ticket
Create a ServiceNow incident via the Table API. Requires SERVICENOWINSTANCE, SERVICENOWUSER, and SERVICENOWPASSWORD environment variables on the server. Trigger on: create a ServiceNow incident, raise an ITSM ticket, log an incident.
mcporter
List, auth, and call MCP servers/tools from the terminal.
article-writing
Write articles, guides, blog posts, tutorials, newsletter issues, and other long-form content in a distinctive voice derived from supplied examples or brand guidance. Use when the user wants polished written content longer than a paragraph, especially when voice consistency, structure, and credibility matter.
sector-rotation
行业轮动分析——申万行业景气度评分、行业动量排名、产业链传导、估值/盈利/资金流多维比较框架.
mem0-oss-to-platform
Plan and then execute a migration of a project from the mem0 open-source / self-hosted SDK (the local Memory class) to the mem0 Platform / hosted / managed SDK (the MemoryClient class). Use this whenever a developer wants to move, switch, or migrate their mem0 usage off OSS/self-hosted to the hosted API — e.g.…