Dwizi MCP (Management API)
Dwizi MCP is a JSON-RPC control plane that lets API keys create and manage tools, prompts, resources, and MCP servers. It is designed for LLM agents that need to build and maintain their own toolbelt.
Endpoint
POST https://api.dwizi.com/mcp/dwizi
Auth
Provide an API key scoped to the operations you need:
Authorization: Bearer dwz_live_...- or
X-Dwizi-Key: dwz_live_...
Streaming (SSE)
Dwizi MCP supports SSE:
- Add
stream=1to the URL, or - Send
Accept: text/event-stream
Scopes
API keys are scoped. Write scopes imply read scopes.
Available scopes:
tools:read,tools:writeresources:read,resources:writeprompts:read,prompts:writemcp:read,mcp:writeorg:read
Notes
- All assets are scoped to the API key’s organization.
- Deletes are soft deletes for API-key actions.
- Inline
resourcesandpromptsare not supported here. UseresourceIdsandpromptIds. outputPolicyvalues:retain(default),omit,obfuscate.
Tool Catalog
Org
dwizi.org.get→org:read
Tools
dwizi.tools.list→tools:readdwizi.tools.get→tools:readdwizi.tools.create→tools:writedwizi.tools.update→tools:writedwizi.tools.delete→tools:write
Resources
dwizi.resources.list→resources:readdwizi.resources.get→resources:readdwizi.resources.create→resources:writedwizi.resources.update→resources:writedwizi.resources.delete→resources:write
Prompts
dwizi.prompts.list→prompts:readdwizi.prompts.get→prompts:readdwizi.prompts.create→prompts:writedwizi.prompts.update→prompts:writedwizi.prompts.delete→prompts:write
MCP Servers
dwizi.mcp.list→mcp:readdwizi.mcp.get→mcp:readdwizi.mcp.create→mcp:writedwizi.mcp.update→mcp:writedwizi.mcp.delete→mcp:writedwizi.mcp.tools.list→mcp:readdwizi.mcp.resources.list→mcp:readdwizi.mcp.prompts.list→mcp:read
Examples
List Dwizi MCP tools
curl -X POST "https://api.dwizi.com/mcp/dwizi" \
-H "Authorization: Bearer dwz_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Create a tool
curl -X POST "https://api.dwizi.com/mcp/dwizi" \
-H "Authorization: Bearer dwz_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"dwizi.tools.create","arguments":{"tool":{"name":"Send Email","slug":"send-email","language":"js","description":"Send email","outputPolicy":"retain","inputSchema":{"type":"object","required":["to","subject","body"],"properties":{"to":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"}}},"source":"export default async (input) => ({ ok: true })"}}}}'
Create a resource
curl -X POST "https://api.dwizi.com/mcp/dwizi" \
-H "Authorization: Bearer dwz_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"dwizi.resources.create","arguments":{"resource":{"uri":"resource://docs/welcome","name":"Welcome","mimeType":"text/plain","text":"Hello"}}}}'
Create a prompt
curl -X POST "https://api.dwizi.com/mcp/dwizi" \
-H "Authorization: Bearer dwz_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"dwizi.prompts.create","arguments":{"prompt":{"name":"triage-ticket","description":"Triage a support ticket","arguments":[{"name":"ticketBody","required":true}],"messages":[{"role":"system","content":"You are a helpful support agent."},{"role":"user","content":"{{ticketBody}}"}]}}}}'
Create an MCP server (attach existing assets)
curl -X POST "https://api.dwizi.com/mcp/dwizi" \
-H "Authorization: Bearer dwz_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"dwizi.mcp.create","arguments":{"server":{"name":"Support Suite","slug":"support-suite","toolIds":["<tool_id>"],"resourceIds":["<resource_id>"],"promptIds":["<prompt_id>"]}}}}'
Update MCP server attachments
curl -X POST "https://api.dwizi.com/mcp/dwizi" \
-H "Authorization: Bearer dwz_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":6,"method":"tools/call","params":{"name":"dwizi.mcp.update","arguments":{"slug":"support-suite","patch":{"toolIds":["<tool_id>","<tool_id>"],"resourceIds":["<resource_id>"],"promptIds":["<prompt_id>"]}}}}'
Soft delete a tool
curl -X POST "https://api.dwizi.com/mcp/dwizi" \
-H "Authorization: Bearer dwz_live_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":7,"method":"tools/call","params":{"name":"dwizi.tools.delete","arguments":{"slug":"send-email"}}}'
Limits (current defaults)
- Rate limits (per API key): 60/min, 600/hour, burst 20/10s
- Asset caps (per org): tools 10, prompts 20, resources 20, MCP servers 3