Upload a new AI resource (command, skill, rule, or mcp) to a CSP source repository. The user selects files from their local machine — read each file and pass its content in files[]. ALWAYS confirm the target source repo with the user (e.g. "csp" (default) or "client-sdk-ai-hub"). Resource type ...
Accepts file system path (files[].path); Accepts raw HTML/template content (files[].content); High parameter count (11 properties)
Part of the Ai Agent MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.
AI agents use upload_resource to create or modify resources in Ai Agent. Write operations carry medium risk because an autonomous agent could trigger bulk unintended modifications. Rate limits prevent a single agent session from making hundreds of changes in rapid succession. Argument validation ensures the agent passes expected values.
Without a policy, an AI agent could call upload_resource repeatedly, creating or modifying resources faster than any human could review. Intercept's rate limiting ensures write operations happen at a controlled pace, and argument validation catches malformed or unexpected inputs before they reach Ai Agent.
Write tools can modify data. A rate limit prevents runaway bulk operations from AI agents.
tools:
upload_resource:
rules:
- action: allow
rate_limit:
max: 30
window: 60 See the full Ai Agent policy for all 8 tools.
Agents calling write-class tools like upload_resource have been implicated in these attack patterns. Read the full case and prevention policy for each:
Other tools in the Write risk category across the catalogue. The same policy patterns (rate-limit, validate) apply to each.
Upload a new AI resource (command, skill, rule, or mcp) to a CSP source repository. The user selects files from their local machine — read each file and pass its content in files[]. ALWAYS confirm the target source repo with the user (e.g. "csp" (default) or "client-sdk-ai-hub"). Resource type rules: • If the user explicitly states the type, use it as-is — no overriding. • If the user does NOT state a type, auto-detect from file structure: - Contains mcp-config.json → type="mcp" - Contains SKILL.md → type="skill" - Single .mdc file → type="rule" - Single .md file → type="command" • If the user says type="mcp" but mcp-config.json is missing, the tool will return an error with a hint about creating mcp-config.json. Resource name rules: • If the user provides a name, use it. • Otherwise derive the name from the filename WITHOUT its extension. Keep the original filename — NEVER rename files (e.g. do not rename any .md file). Examples: "code-review.md" → name="code-review"; "code-review/SKILL.md" → name="code-review". Pass files[] — an array of {path, content} entries. path must be the original filename as-is (relative, no path traversal). No restriction on file extensions — mcp packages may include .py, .js, package.json, etc. The user_token is injected automatically by the server — do NOT read or pass it manually.. It is categorised as a Write tool in the Ai Agent MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
Add a rule in your Intercept YAML policy under the tools section for upload_resource. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the Ai Agent MCP server.
upload_resource is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the upload_resource rule in your Intercept policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the Intercept policy for upload_resource. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
upload_resource is provided by the Ai Agent MCP server (@elliotding/ai-agent-mcp). Intercept sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Deterministic policy on every MCP tool call. Per-identity grants. Full audit log.