plugins/integrations/stackone-agents/skills/stackone-agents/SKILL.md
Build AI agents that call StackOne-linked accounts using TypeScript SDK, Python SDK, MCP server, or A2A protocol. Use when user asks to "add StackOne tools to my agent", "set up MCP with StackOne", "list employees from BambooHR in my agent", "integrate StackOne with OpenAI", "build a multi-tenant agent", or "use StackOne with LangChain". Supports OpenAI, Vercel AI SDK, Claude, LangChain, CrewAI, PydanticAI. Do NOT use for account linking setup (use stackone-connect) or platform management (use stackone-platform).
npx skillsauth add stackonehq/agent-plugins-marketplace stackone-agentsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
SDK APIs change frequently. Before writing code:
https://raw.githubusercontent.com/stackoneHQ/stackone-ai-node/refs/heads/main/README.mdhttps://raw.githubusercontent.com/stackoneHQ/stackone-ai-python/refs/heads/main/README.mdhttps://docs.stackone.com/mcp/quickstartThese sources contain the latest code examples and API surface. Do not rely solely on this skill for code snippets.
| Method | Best for | Language |
|--------|----------|----------|
| TypeScript SDK (@stackone/ai) | Custom agents with OpenAI, Vercel AI, Claude, Claude Agent SDK | TypeScript/JavaScript |
| Python SDK (stackone-ai) | Custom agents with LangChain, CrewAI, PydanticAI, Google ADK | Python |
| MCP Server | Claude Code, Claude Desktop, ChatGPT, Cursor, Windsurf — no code needed | Any (config only) |
| A2A Protocol | Agent-to-agent communication | Any |
Consult references/integration-guide.md for a detailed decision tree.
npm install @stackone/ai zod
import { StackOneToolSet } from "@stackone/ai";
// Initialize — reads STACKONE_API_KEY from environment
const toolset = new StackOneToolSet();
// Fetch tools for a specific linked account
const tools = await toolset.fetchTools({
accountIds: ["account-123"],
});
// Convert to your framework's format
const openaiTools = tools.toOpenAI(); // OpenAI Chat Completions
const anthropicTools = tools.toAnthropic(); // Anthropic Claude
const vercelTools = await tools.toAISDK(); // Vercel AI SDK
Tool naming: {provider}_{operation}_{entity} (e.g., bamboohr_list_employees)
Filtering tools:
const tools = await toolset.fetchTools({
providers: ["hibob", "bamboohr"], // Only these providers
actions: ["*_list_employees"], // Glob pattern matching
accountIds: ["account-123"],
});
Utility tools for dynamic discovery:
const utilityTools = await tools.utilityTools();
// tool_search — find tools by natural language query
// tool_execute — execute a discovered tool
For framework-specific integration code, fetch the GitHub README — it has complete examples for each framework.
pip install stackone-ai
Fetch the Python README for usage examples and framework integrations:
https://raw.githubusercontent.com/stackoneHQ/stackone-ai-python/refs/heads/main/README.md
The Python SDK supports: OpenAI, LangChain, CrewAI, PydanticAI, Google ADK.
StackOne's MCP server is at https://api.stackone.com/mcp.
For client-specific setup instructions, fetch the relevant guide:
https://docs.stackone.com/mcp/framework-guides/claude-codehttps://docs.stackone.com/mcp/app-guides/claude-desktophttps://docs.stackone.com/llms.txt and search for the client nameTesting the MCP connection:
npx @modelcontextprotocol/inspector https://api.stackone.com/mcp
For applications serving multiple customers, each with their own connected accounts:
// Option 1: Specify at fetch time
const tools = await toolset.fetchTools({
accountIds: ["customer-123-bamboohr"],
});
// Option 2: Change dynamically
tools.setAccountId("customer-456-bamboohr");
The accountId maps to a linked account created via the Connect Session flow (see the stackone-connect skill for setup).
User says: "I want my OpenAI agent to list employees from BambooHR"
Actions:
@stackone/ai and zodaccountIds and actions: ["bamboohr_list_employees"]tools.toOpenAI() and pass to the OpenAI chat completions callResult: Working agent that can query BambooHR employees through StackOne.
User says: "How do I use StackOne MCP in Claude Code?"
Actions:
https://docs.stackone.com/mcp/framework-guides/claude-code for the setup guidenpx @modelcontextprotocol/inspector firstResult: Claude Code can call StackOne tools directly.
User says: "Each of my customers has their own BambooHR. How do I handle that?"
Actions:
accountId when fetching toolstoolset.fetchTools({ accountIds: [customerAccountId] }) per requestResult: Understanding of the multi-tenant pattern with code to implement it.
Cause: Missing peer dependency.
@stackone/ai requires zod version >=3.25.0 <5npm install zod explicitlyCause: No tools match the filter criteria.
accountId corresponds to an active linked accountproviders filter matches exactly (e.g., bamboohr not BambooHR)Cause: Authentication misconfigured.
Authorization: Basic base64(api_key:)x-account-id header must reference a valid, active linked accountCause: Breaking changes between SDK versions.
tools
Behavioral guidance for Claude Code when StackOne Defender is running as a PostToolUse hook. Defender flags tool results that may contain prompt injection. Treat its flags as a quiet review hint — do a quick check for genuine injection, then continue working. Do not interrupt the user unless you confirm a real attack.
tools
Baseline skill for building unified/schema-based connectors that transform provider data into standardized schemas. Use alongside domain-specific schema skills (e.g., unified-hris-schema, unified-crm-schema) that define your organization's standard schemas. Use when user says "start unified build for [provider]", "build a schema-based connector", "map fields to schema", "test unified connector", or asks about field mapping, enum mapping, pagination configuration, or scope decisions. This skill provides implementation patterns; schema skills provide field definitions. Do NOT use for agentic/custom connectors (use stackone-cli), discovering existing connectors (use stackone-connectors), or building AI agents (use stackone-agents).
development
Manage StackOne resources including API keys, linked accounts, logs, and webhooks. Use when user asks to "set up StackOne", "list my accounts", "debug API errors", "check integration status", or "configure webhooks". Covers authentication, account management, and troubleshooting. Do NOT use for building AI agents (use stackone-agents) or discovering connector capabilities (use stackone-connectors).
development
Discover StackOne's 200+ connectors and 9,000+ actions across HRIS, ATS, CRM, LMS, ticketing, messaging, documents, IAM, and accounting. Use when user asks "which providers does StackOne support", "what can I do with BambooHR", "recommend an integration for HR", "what actions are available", "how do I call a provider-specific action", or "does StackOne support Workday". Helps choose the right connector and actions for any use case. Do NOT use for building agents (use stackone-agents) or connecting accounts (use stackone-connect).