Skip to main content
The Piper MCP server exposes 40 tools that let you manage agents, files, scenarios, triggers, domains, secrets, MCP servers, and more — all from an MCP-compatible client like Claude Desktop. For setup instructions, see Claude Desktop Integration.

Organization context

Every tool (except list_organizations) requires an org_id parameter — the UUID of the organization to operate on. Use list_organizations to discover your available organizations and their IDs. When using Claude Desktop or Claude Code, Claude will include org_id automatically once it knows which organization you’re working with. You can tell Claude which org to use, or it will call list_organizations to find out.

Agents

List agents in the organization. Returns id, name, status, and model info.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
limitintegerNoMax results (default 50, max 200)
offsetintegerNoPagination offset (default 0)
Example prompts
  • “List all my agents”
  • “Show me which agents are active”
  • “What models are my agents using?”
Get full configuration for an agent including linked knowledge, bookmarked documents, tools, and delegates.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
agent_idstringYesUUID of the agent to inspect
Example prompts
  • “Show me the full config for my Support Agent”
  • “What knowledge collections are linked to agent X?”
  • “Which documents are bookmarked for my agent?”
Create a new agent in the organization.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
namestringYesAgent name (max 255 chars)
model_providerstringYesLLM provider (use list_supported_models to see valid providers, e.g. “groq”, “openai”, “anthropic”)
model_namestringYesModel identifier (use list_supported_models with a provider to see IDs)
internal_namestringNoInternal identifier (max 255 chars)
primary_task_descriptionstringNoPrimary task description (max 15000 chars)
business_information_overridestringNoOverride org-level business info (max 10000 chars)
languagesarrayNoLanguage codes (default ["en-US"])
is_activebooleanNoWhether agent is active (default true)
Example prompts
  • “Create a new agent called ‘Sales Bot’”
  • “Set up a Spanish-language support agent”
  • “Create an inactive agent named ‘Draft Agent’ for testing”
Update an existing agent’s configuration.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
agent_idstringYesUUID of the agent to update
namestringNoNew name (max 255 chars)
internal_namestringNoNew internal identifier
primary_task_descriptionstringNoNew primary task description
business_information_overridestringNoOverride org-level business info
model_providerstringNoLLM provider (e.g. “groq”, “openai”)
model_namestringNoModel name
temperaturenumberNoModel temperature (0.0–2.0)
languagesarrayNoLanguage codes
is_activebooleanNoWhether agent is active
Example prompts
  • “Rename my Support Agent to ‘Help Desk’”
  • “Change the model for agent X to GPT-4”
  • “Disable agent X”
List LLM models available to this organization based on configured providers. Use this to discover valid model_provider and model_name values for create_agent and update_agent.Without a provider filter, returns all providers with their default model. With a provider filter, returns all models for that provider.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
providerstringNoProvider to filter by (e.g. “groq”, “openai”). If omitted, returns all providers.
Example prompts
  • “What LLM providers are supported?”
  • “Show me all models available for Groq”
  • “What model is my agent using and what are the alternatives?”

Sessions

Search sessions in the organization. Filter by agent and test status.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
agent_idstringNoAgent UUID to filter by
is_testbooleanNoFilter for test sessions only
limitintegerNoMax results (default 20, max 100)
offsetintegerNoPagination offset (default 0)
Example prompts
  • “Show me recent sessions for my Support Agent”
  • “List the last 10 test sessions”
  • “How many conversations has agent X had?”
Get the full event transcript for a session or specific run, including all messages, tool calls, and metrics.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
session_idstringYesUUID of the session
run_idstringNoUUID of a specific run within the session
max_runsintegerNoMax number of runs to return (default 10, max 50)
Example prompts
  • “Show me the transcript for session X”
  • “What tool calls did the agent make in that conversation?”
  • “How many tokens did the last run use?”

Files

Manage knowledge collections, documents, and bookmarks. Documents are organized in collections, chunked and embedded for semantic search. Agents search files automatically via the search_knowledge tool.
Search published knowledge documents using semantic similarity (vector search).Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
querystringYesNatural language search query
agent_idstringNoAgent UUID to scope search to that agent’s collections
collection_idstringNoCollection UUID to search within
limitintegerNoMax results (default 5, max 20)
Example prompts
  • “Search my files for return policy information”
  • “What documents mention pricing?”
  • “Find knowledge related to onboarding in the Support Agent’s collections”
List knowledge collections in the organization.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
limitintegerNoMax results (default 50, max 200)
offsetintegerNoPagination offset (default 0)
Example prompts
  • “What collections do I have?”
  • “List all my collections”
Create a new knowledge collection.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
namestringYesCollection name
descriptionstringNoCollection description
Example prompts
  • “Create a collection called ‘Product Docs’”
  • “Add a new collection for FAQ documents”
Delete a knowledge collection and all its documents.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
collection_idstringYesUUID of the collection to delete
Example prompts
  • “Delete the old FAQ collection”
  • “Remove collection X”
List documents in a knowledge collection. Returns document metadata including processing status and bookmark mode.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
collection_idstringYesUUID of the collection
limitintegerNoMax results (default 50, max 200)
offsetintegerNoPagination offset (default 0)
Example prompts
  • “Show me the documents in collection X”
  • “What files are in my FAQ collection?”
  • “List documents with their processing status”
Create a text document in a knowledge collection. The document will be automatically chunked and embedded.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
collection_idstringYesUUID of the collection
titlestringYesDocument title
contentstringYesText content (max 1MB)
languagestringNoLanguage code (e.g. “en-US”)
Example prompts
  • “Add a new document about our return policy to the FAQ collection”
  • “Create a knowledge document with this content: …”
  • “Upload this text as a Spanish-language document”
Update a knowledge document. When content is changed, the document is automatically re-processed (re-chunked and re-embedded).Uses JSON Merge Patch format — only include fields you want to change.Supported fields: title, language, contentParameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
document_idstringYesUUID of the document to modify
patchobjectYesJSON Merge Patch with the changes
Example prompts
  • “Update the title of document X to ‘Returns FAQ’”
  • “Replace the content of that document with this new version”
  • “Change the language of document X to Spanish”
Delete a document from a collection.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
document_idstringYesUUID of the document to delete
Example prompts
  • “Delete document X”
  • “Remove the outdated policy document”
Restrict a collection to specific agents. Only the specified agents will be able to search documents in this collection.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
collection_idstringYesUUID of the collection
agent_idsarrayYesList of agent UUIDs that can access this collection
Example prompts
  • “Restrict the HR collection to only the HR Agent”
  • “Give agents X and Y access to collection Z”
Reset a collection’s agent access so all agents can search it.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
collection_idstringYesUUID of the collection
Example prompts
  • “Make collection X available to all agents”
  • “Reset agent restrictions on the FAQ collection”
Get the bookmark status for a document, including which agents it’s bookmarked for and the usage description.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
document_idstringYesUUID of the document
Example prompts
  • “Is document X bookmarked?”
  • “Which agents is the return policy bookmarked for?”
Set the bookmark mode for a document. Bookmarked documents appear in the agent’s system prompt with their title and usage description.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
document_idstringYesUUID of the document
bookmark_modestringYesOne of: “off”, “all_agents”, “specific_agents”
agent_idsarrayNoAgent UUIDs (required when bookmark_mode is “specific_agents”)
usage_descriptionstringNoDescription of when/how the agent should use this document
Example prompts
  • “Bookmark the return policy for all agents”
  • “Bookmark the escalation guide for the Support Agent only”
  • “Remove the bookmark from document X”

Runtime

Send a message to an agent and get a response. The session is tagged as a test run.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
agent_idstringYesUUID of the agent to invoke
messagestringYesThe user message to send
session_idstringNoExisting session UUID to continue a conversation
Example prompts
  • “Send ‘What are your hours?’ to my Support Agent”
  • “Test my agent with a billing question”
  • “Continue the test conversation in session X with a follow-up”

Scenarios

List evaluation scenarios in the organization. Supports tag filtering.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
limitintegerNoMax results (default 50, max 200)
offsetintegerNoPagination offset (default 0)
tagsarrayNoFilter by tags (returns scenarios matching any tag)
Example prompts
  • “List all my test scenarios”
  • “Show scenarios tagged ‘regression’”
  • “How many scenarios do I have?”
Create a multi-turn evaluation scenario for testing an agent.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
namestringYesScenario name (max 255 chars)
turnsarrayYesList of turn objects (see Turn format below)
descriptionstringNoDescription of the scenario
tagsarrayNoList of tags for filtering
customer_contextobjectNoContext dict for template rendering (e.g. customer info)
Turn formatEach turn object has:
  • user_message (string, required) — the user’s message. Supports Jinja2 templates: {{ customer.name }}
  • required (boolean, default true) — if true and the turn fails, subsequent turns are skipped
  • criteria (array, optional) — evaluation criteria, each with:
    • criteria_type — one of llm_evaluated (default), tool_usage, retrieval, retrieval_results, citation
    • question — meaning depends on type: for llm_evaluated a yes/no question for the judge (e.g. “Did the agent offer a refund?”); for tool_usage the exact tool name (e.g. “search_knowledge”); for retrieval space-separated search terms; for retrieval_results expected doc name/keywords; for citation expected source doc name or empty string for any citation
    • order_index (integer, default 0)
    • few_shot_examples (array, optional, llm_evaluated only) — each with response, verdict (“PASS”/“FAIL”), critique
Example prompts
  • “Create a test scenario that asks about returns then follows up about refund timing”
  • “Build an evaluation scenario with 3 turns testing billing questions”
  • “Create a scenario tagged ‘regression’ that tests the greeting flow”
Update an existing evaluation scenario. Only include the fields you want to change.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
scenario_idstringYesUUID of the scenario to update
namestringNoNew scenario name (max 255 chars)
descriptionstringNoNew description
tagsarrayNoNew list of tags (replaces existing)
customer_contextobjectNoNew context dict for template rendering
turnsarrayNoNew list of turn objects (replaces existing turns). See create_scenario for turn format
Example prompts
  • “Rename scenario X to ‘Billing Regression’”
  • “Add a tag ‘critical’ to scenario X”
  • “Replace the turns in scenario X with these new ones”
Run a scenario against an agent and return detailed results. Executes each turn in sequence, evaluating criteria after each turn. If a required turn fails, subsequent turns are skipped.This is a synchronous call that blocks until the full scenario execution completes (all turns + evaluations). May take 30s+ for multi-turn scenarios with many criteria.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
scenario_idstringYesUUID of the scenario to run
agent_idstringYesUUID of the agent to test
Example prompts
  • “Run the billing regression scenario against my Support Agent”
  • “Test agent X with scenario Y and show me the results”
  • “Execute all my regression scenarios against the new agent”

Triggers

List triggers in the organization.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
limitintegerNoMax results (default 50, max 200)
offsetintegerNoPagination offset (default 0)
Example prompts
  • “List all my triggers”
  • “Show me my triggers”
  • “What triggers are configured?”
Get details of a trigger including its configuration.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
trigger_idstringYesUUID of the trigger
Example prompts
  • “Show me the config for trigger X”
  • “What agent is trigger X connected to?”
Create a trigger for an agent. Every trigger gets a webhook URL. Optionally add a cron schedule to also run on a timer.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
namestringYesTrigger name (1–255 chars)
agent_idstringNoUUID of the agent to invoke (must be active in this org)
messagestringNoMessage to send to the agent when triggered
cron_expressionstringNoCron expression (5 fields). If provided, the trigger also runs on a schedule
timezonestringNoIANA timezone for scheduled evaluation (default UTC)
Example prompts
  • “Create a trigger that runs my agent every hour”
  • “Set up a webhook trigger for agent X”
  • “Create a daily trigger at 9am EST for the Support Agent”
Update an existing trigger’s configuration.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
trigger_idstringYesUUID of the trigger to update
namestringNoNew name (1–255 chars)
statusstringNoNew status: “active” or “inactive”
agent_idstringNoNew agent UUID
messagestringNoNew message
cron_expressionstringNoNew cron expression (5 fields)
timezonestringNoNew IANA timezone
Example prompts
  • “Disable trigger X”
  • “Change the schedule for trigger X to every 30 minutes”
  • “Update trigger X to point to a different agent”
List execution history (runs) for a trigger.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
trigger_idstringYesUUID of the trigger
limitintegerNoMax results (default 50, max 200)
offsetintegerNoPagination offset (default 0)
Example prompts
  • “Show me the run history for trigger X”
  • “Did trigger X run successfully?”
  • “List recent trigger executions”

Domains

List the organization’s allowed domains for external fetches by agents. Returns header and query parameter templates with {{SECRET_NAME}} placeholders intact (values are never resolved in responses).Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
limitintegerNoMax results (default 100, max 500)
offsetintegerNoPagination offset (default 0)
Example prompts
  • “What domains are on the allowlist?”
  • “Show me the allowed domains for this org”
  • “Are there any external domains configured?”
Add a domain to the organization’s allowlist for external fetches by agents. Headers and query parameters are automatically injected into all HTTP requests to this domain at runtime.Use {{SECRET_NAME}} placeholders to reference encrypted secrets (created via create_secret) — they are resolved at runtime so plaintext values are never stored in domain config.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
domainstringYesDomain name (e.g. “api.example.com”)
headersobjectNoHTTP headers to auto-inject. Use {{SECRET_NAME}} to reference secrets (e.g. {"Authorization": "Bearer {{API_KEY}}"})
query_paramsobjectNoQuery parameters to auto-inject. Use {{SECRET_NAME}} to reference secrets (e.g. {"api_key": "{{WEATHER_API_KEY}}"})
Example prompts
  • “Add api.example.com to the domain allowlist”
  • “Allow requests to crm.internal.com with an API key header”
Update an allowed domain’s headers or query parameters.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
domain_idstringYesUUID of the domain to update
headersobjectNoNew HTTP headers dict (replaces existing). Use {{SECRET_NAME}} to reference secrets
query_paramsobjectNoNew query parameters dict (replaces existing). Use {{SECRET_NAME}} to reference secrets
Example prompts
  • “Update the API key header for domain X”
  • “Add query params to the CRM domain”
Delete a domain from the organization’s allowlist. Agents will no longer be able to fetch from this domain.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
domain_idstringYesUUID of the domain to delete
Example prompts
  • “Remove api.example.com from the allowlist”
  • “Delete domain X”

Secrets

List secrets for the organization (metadata only, values never exposed). Secrets can be referenced in allowed domain headers and query parameters using the {{SECRET_NAME}} template syntax.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
limitintegerNoMax results (default 100, max 500)
offsetintegerNoPagination offset (default 0)
Example prompts
  • “List my secrets”
  • “Show the secrets configured for this org”
  • “What secret keys are available?”
Create an encrypted secret for the organization. Once created, reference this secret in allowed domain headers or query parameters using {{KEY}} syntax (e.g. create a secret with key API_KEY, then set a domain header to {"Authorization": "Bearer {{API_KEY}}"}). The secret value is resolved at runtime and never stored in plaintext in domain config.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
keystringYesSecret key in ALL_CAPS_UNDERSCORES format (for example OPENAI_API_KEY)
valuestringYesPlaintext secret value to store
Example prompts
  • “Create a secret named OPENAI_API_KEY
  • “Store this Slack bot token as SLACK_BOT_TOKEN
  • “Add a secret for my webhook signing key”

MCP Servers

List MCP servers configured for the organization.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
limitintegerNoMax results (default 50, max 200)
offsetintegerNoPagination offset (default 0)
include_inactivebooleanNoInclude deactivated servers (default false)
Example prompts
  • “What MCP servers are configured?”
  • “List all active MCP server connections”
Get details of an MCP server including its configuration.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
server_idstringYesUUID of the MCP server
Example prompts
  • “Show me the config for MCP server X”
  • “What URL is MCP server X pointing to?”
Register a new MCP server for the organization.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
namestringYesServer name
urlstringYesServer URL endpoint
descriptionstringNoDescription
auth_typestringNoAuth type: “bearer” or “header”
auth_header_namestringNoCustom header name (when auth_type is “header”)
auth_tokenstringNoAuth token (stored encrypted)
tool_prefixstringNoPrefix for tool names from this server
timeout_secondsintegerNoConnection timeout (default 30)
is_activebooleanNoWhether server is active (default true)
Example prompts
Update an existing MCP server’s configuration.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
server_idstringYesUUID of the server to update
namestringNoNew server name
urlstringNoNew server URL
descriptionstringNoNew description
auth_typestringNoNew auth type
auth_header_namestringNoNew header name
auth_tokenstringNoNew auth token
tool_prefixstringNoNew tool prefix
timeout_secondsintegerNoNew timeout
is_activebooleanNoWhether server is active
clear_authbooleanNoSet to true to disable authentication (clears auth_type and auth_header_name)
Example prompts
  • “Update the URL for MCP server X”
  • “Change the auth token for server X”
  • “Disable MCP server X”
  • “Remove authentication from MCP server X”
Test connectivity to an MCP server and discover its available tools.Parameters
NameTypeRequiredDescription
org_idstringYesOrganization UUID
server_idstringYesUUID of the MCP server to test
Example prompts
  • “Test the connection to MCP server X”
  • “What tools does MCP server X provide?”
  • “Check if server X is reachable”

Organization

List organizations accessible via the current token. Returns the organization id and name.Every other tool requires an org_id parameter. Use this tool first to discover your organization ID, then pass it to subsequent tool calls.ParametersNone.Example prompts
  • “Which organizations can I access?”
  • “List my orgs”
  • “What’s my organization ID?”

Permissions

Each tool requires a specific permission based on your role in the organization. If a tool call returns a permission error, ask your organization admin to update your role.
ToolRequired Permission
list_agents, get_agent_config, list_supported_modelsAgents: Read
create_agentAgents: Create
update_agentAgents: Update
search_sessions, get_session_transcriptAgents: Read
search_knowledge, list_collections, list_documentsKnowledge: Read
create_collection, create_documentKnowledge: Create
update_document, set_collection_agents, reset_collection_agentsKnowledge: Update
delete_collection, delete_documentKnowledge: Delete
get_document_bookmark, set_document_bookmarkKnowledge: Update
agent_chatRuntime: Invoke
list_scenariosScenarios: Read
create_scenario, update_scenarioScenarios: Create / Update
run_scenarioScenarios: Execute
list_triggers, get_trigger, list_trigger_runsTriggers: Read
create_triggerTriggers: Create
update_triggerTriggers: Update
list_allowed_domainsOrganization: Read
create_domain, update_domain, delete_domainOrganization: Update
list_secretsOrganization: Read
create_secretOrganization: Update
list_mcp_servers, get_mcp_server, test_mcp_serverMCP Servers: Read
create_mcp_serverMCP Servers: Create
update_mcp_serverMCP Servers: Update
list_organizations(any valid token)