Connect
Optimize
Secure
The #1 agentic semantic tool search: 91.6% first-try accuracy on S1 Search Bench • Explore Tool Discovery →
Connect your AI agent to StackOne's SmartAdvocate MCP server and give it 60 MCP tools out of the box. Auth, tool execution, and security all managed.
Coverage
Create, read, update, and delete across SmartAdvocate — and extend your agent's capabilities with custom actions.
Authentication
Per-user OAuth in one call. Your SmartAdvocate MCP server gets session-scoped tokens with zero credentials stored on your infra.
Agent Auth →Security
Every SmartAdvocate tool response scanned for prompt injection in milliseconds — 88.7% accuracy, all running on CPU.
Prompt Injection Defense →Performance
Free up to 96% of your agent's context window to enhance reasoning and reduce cost, on every SmartAdvocate call.
Tools Discovery →A SmartAdvocate MCP server lets AI agents read and write SmartAdvocate data through the Model Context Protocol — Anthropic's open standard for connecting LLMs to external tools. StackOne's SmartAdvocate MCP server ships with 60 pre-built actions, fully extensible via the Connector Builder — plus managed authentication, prompt injection defense, observability, and agent execution runtime. Connect it from MCP clients like Claude Desktop, Claude Code, Cursor, Goose, and VS Code, or from agent frameworks like OpenAI Agents SDK, LangChain, and Vercel AI SDK.
Every action from SmartAdvocate's API, ready for your agent. Create, read, update, and delete — scoped to exactly what you need.
Add a contact to a case
Get all contacts associated with a case
Partially update a contact on a case using JSON Patch operations array [{op, path, value}]. Use get_case_contacts first to get contactId
Remove a contact from a case
Create a new contact. Set contactCtg to 1 for individual or 2 for organization. Use contact_types to find valid contactTypeId values
Get basic contact info by contact ID
Partially update a contact using JSON Patch operations array [{op, path, value}]. Use contact_info first to get the contactId
Create a new case note. Requires caseID, noteTypeID (a system-defined note type identifier), and noteText (supports HTML)
Get all notes for a case by case ID
Get a single case note by ID
Update a case note (full replacement)
Create a document metadata record
Get document metadata by ID
Download document content as base64
Fully update a document metadata record
Create a new task
Get a single task by ID
Fully update a task
Delete a task by ID
Create a new user
Get all users with basic profile info (ID, name, username, email, status)
Get a single user by ID
Fully update a user
Delete a user by ID
Create a new case
Create a new calendar appointment for a case
Upload file content to an existing document record
Insert a new case status entry. Requires caseID and statusTypeID (a system-defined status type identifier)
Look up a case using its case number string (e.g., 9000002). Use this when you have the case number, not the internal numeric ID
Get case by internal case ID
List only currently active (open) cases with pagination
Get case types available within a specific case group. Requires the CaseGroup ID as input
Get all calendar appointments for a case by case ID
Get available appointment types
Get full contact info including addresses, phones, and emails
Get available contact types
Get all documents belonging to a specific case by its case ID
Get available document categories
Get available document tags
Get all tasks for a case by case ID
Get available task types
Get available task statuses
Get available task priorities
Get all users with full details
Get available case roles
Get available firm roles
Get available user titles
Get available offices
Get available departments
Get available permission groups
Get available teams
Get case status history by case ID
Get a specific case status entry
Get all calls for a case
Search all cases (open and closed) by modification date range with pagination
Search and filter calendar appointments by date range with pagination
Search and filter contacts by date range with pagination
Search documents across all cases by modification date range with pagination
Search and filter tasks by date range with pagination
Terminate/close a case status entry
One endpoint. Any framework. Your agent is talking to SmartAdvocate in under 10 lines of code.
Agent Frameworks
{
"mcpServers": {
"stackone": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://api.stackone.com/mcp?x-account-id=<account_id>",
"--header",
"Authorization: Basic <YOUR_BASE64_TOKEN>"
]
}
}
}Anthropic's code_execution processes data already in context. Custom MCP code mode keeps raw tool responses in a sandbox. 14K tokens vs 500.
11 min
Benchmarking BM25, TF-IDF, and hybrid search for MCP tool discovery across 916 tools. The 80/20 TF-IDF/BM25 hybrid hits 21% Top-1 accuracy in under 1ms.
10 min
MCP tools that read emails, CRM records, and tickets are indirect prompt injection vectors. Here's how we built a two-tier defense that scans tool results in ~11ms.
12 min
MCP vs A2A: what each protocol standardizes, how they differ, their shared security risks including indirect prompt injection, and when to use one, both, or a hybrid architecture.
12 min
MCP wraps APIs, it doesn't replace them. After building 200+ connectors that serve both, here's when each approach wins.
14 min read
origin_owner_id.All the tools you need to build and scale AI agent integrations, with best-in-class connectivity, execution, and security.