TPMJS vs Composio
Composio is a hosted SaaS that routes tool calls through its cloud. TPMJS tools are npm packages that execute in your own runtime — no intermediary, no usage billing, no data leaving your infrastructure.
Architecture Comparison
Composio data flow
Your Agent → Composio SDK
↓
Composio Cloud (processes your data)
↓
Third-party API (GitHub, Slack, etc.)
↓
Response back through Composio → Your Agent
TPMJS data flow
Your Agent → npm package (in your process)
↓
Third-party API (direct, no intermediary)
↓
Response directly to your agent
Integration Code
Composio — SaaS dependency
import { Composio } from 'composio-sdk';
const client = new Composio({ apiKey: 'sk-...' });
const tools = await client.getTools(['github']);
// Every invocation:
// 1. Sends data to Composio cloud
// 2. Composio calls GitHub API
// 3. Response proxied back
// 4. Billed per usage tierTPMJS — npm package, local execution
import { githubTools } from '@my-org/github-tools';
// Tool runs in your process:
// 1. Direct API call to GitHub
// 2. No intermediary
// 3. Credentials stay local
// 4. Free, no usage billing
// Or serve via MCP:
// tpmjs.com/api/mcp/user/collection/sse
// Or use the CLI:
// tpmjs tool execute @my-org/github-toolsFeature Comparison
| Capability | Composio | TPMJS |
|---|---|---|
| Architecture | Hosted SaaS — API calls to Composio cloud | npm packages — tools run in your process |
| Protocol | Proprietary REST API | MCP (JSON-RPC 2.0) — open standard |
| Data flow | Prompts + credentials route through Composio servers | Tools execute locally, data stays in your runtime |
| Pricing | Usage-based tiers | Free — tools are open-source npm packages |
| Offline / air-gapped | No (requires API connectivity) | Yes (packages installed locally via npm) |
| Self-hosting | No | Yes — custom executor endpoint or run tools directly |
| Publishing tools | Composio controls the catalog | npm publish — anyone can contribute |
| Tool count | ~150 managed integrations | Any npm package with the tpmjs keyword |
| Extensibility | Request integrations from Composio | Build and publish your own — available in minutes |
| Executor control | Composio-managed | Default Railway executor or any custom HTTPS endpoint |
Self-Hosting with Custom Executors
TPMJS supports a pluggable executor interface. The default executor runs on Railway, but you can point to any HTTPS endpoint that implements the executor contract:
// Executor request contract
POST /execute
{
"packageName": "@my-org/search-web",
"name": "searchWeb",
"version": "1.2.0",
"params": { "query": "AI tools" },
"env": { "API_KEY": "..." }
}
// Executor response contract
{
"success": true,
"output": { "results": [...] },
"executionTimeMs": 342
}This means you can run tools on your own infrastructure — your VPC, your compliance boundary, your hardware. Composio does not offer this.
When Composio fits
- You want managed OAuth flows for third-party integrations
- You prefer a fully hosted solution with no infra to manage
- You're comfortable with usage-based billing and data routing
When TPMJS fits better
- You need data to stay on your infrastructure
- You want to publish your own tools for the community
- You need offline or air-gapped operation
- You want open-protocol MCP support, not a proprietary SDK
- You want to avoid usage-based billing
Open protocol. Local execution. Your data.
TPMJS tools are npm packages. Install them, run them in your process, serve them via MCP.