tnsa-sdk
v0.1.1
Published
TNSA JavaScript SDK for MCP tooling and agent generation.
Readme
TNSA JavaScript SDK (tnsa-sdk)
A lightweight Node.js client for TNSA APIs to:
- List MCP tools
- Call any MCP tool
- Orchestrate an agent loop via
/agent/generate(when available) - General text generation via
/generate
Works on Node.js >= 18.
Install
# From local path (dev)
npm install ./sdk_js
# From registry (after publish)
npm install tnsa-sdkUsage
Set environment variables (recommended):
export TNSA_API_BASE="https://api.your-tnsa-domain.com"
export TNSA_API_KEY="<your_api_key>"Then use the SDK:
import { listTools, callTool, agentGenerate, generate, TNSAClient } from "tnsa-sdk";
// Option A: env-based singleton
const tools = await listTools();
console.log(tools);
// Call a tool
const result = await callTool("slack_send_message", { channel: "#ops", text: "Deploy ✅" });
console.log(result);
// Agent loop (requires /agent/generate on server)
const final = await agentGenerate({ goal: "Summarize tickets and post to Slack" });
console.log(final);
// General text generation
const gen = await generate({ prompt: "Write a friendly welcome message", max_tokens: 200 });
console.log(gen);
// Option B: explicit client
const client = new TNSAClient({ base: "https://api.example.com", apiKey: "SECRET" });
await client.listTools();API
new TNSAClient({ base?, apiKey? })- If omitted,
baseandapiKeyare read fromTNSA_API_BASEandTNSA_API_KEY.
- If omitted,
client.listTools()→{ tools: [...] }client.callTool(toolName, params)→ tool result JSONclient.agentGenerate({ goal, maxSteps = 5, system })→ agent result JSON- Convenience exports use a default singleton configured via env vars:
listTools(),callTool(toolName, params),agentGenerate(opts)
Error Handling
- All methods throw on non-2xx HTTP responses with
err.status,err.body, and (when JSON)err.json. - You can wrap calls with your own retry logic (e.g., on 429).
Publishing (maintainers)
- Bump version in
package.json. - Ensure files are correct and minimal:
src/index.js,README.md,package.json. - Login and publish:
npm login npm publish --access public --otp <YOUR_OTP>
Optionally, use a scoped org (e.g., @tnsa/tnsa-mcp) and set publishConfig.registry if using a private registry.
