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 tier

TPMJS — 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-tools

Feature Comparison

CapabilityComposioTPMJS
ArchitectureHosted SaaS — API calls to Composio cloudnpm packages — tools run in your process
ProtocolProprietary REST APIMCP (JSON-RPC 2.0) — open standard
Data flowPrompts + credentials route through Composio serversTools execute locally, data stays in your runtime
PricingUsage-based tiersFree — tools are open-source npm packages
Offline / air-gappedNo (requires API connectivity)Yes (packages installed locally via npm)
Self-hostingNoYes — custom executor endpoint or run tools directly
Publishing toolsComposio controls the catalognpm publish — anyone can contribute
Tool count~150 managed integrationsAny npm package with the tpmjs keyword
ExtensibilityRequest integrations from ComposioBuild and publish your own — available in minutes
Executor controlComposio-managedDefault 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.