Picsha AI MCP Server
OfficialEnables building AI-powered Slack bots that interact with Picsha AI's media library through user isolation and dynamic context injection.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Picsha AI MCP Serversearch for sunset landscape images"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@picsha-ai/mcp-server
The official Model Context Protocol (MCP) proxy server for the Picsha AI platform.
This package provides a secure, local stdio proxy that connects your LLM and AI agents (like Claude Desktop or OpenClaw) directly to your Picsha AI environment. By running locally, the server is natively enabled to securely read local files and utilize Picsha's direct-to-S3 upload pipelines.
Installation & Configuration
You do not need to install this package permanently. You can run it dynamically via npx.
Claude Desktop / OpenClaw
Add the following to your claude_desktop_config.json or openclaw.json:
{
"mcpServers": {
"picsha-ai": {
"command": "npx",
"args": [
"-y",
"@picsha-ai/mcp-server@latest"
],
"env": {
"PICSHA_API_TOKEN": "<YOUR_API_TOKEN_HERE>"
}
}
}
}Related MCP server: production-grade-mcp-agentic-system
Security & Multi-Tenancy
You can generate a PICSHA_API_TOKEN via your Picsha Admin Dashboard. By default, this token grants the AI agent administrative access across your entire organization's library.
Sandbox Mode (User Isolation): If you are embedding this MCP server for end-user Slack bots or customer facing SaaS products, you can dynamically restrict the agent's context to a specific user by injecting their User ID as an environment variable:
"env": {
"PICSHA_API_TOKEN": "<YOUR_API_TOKEN>",
"PICSHA_EXTERNAL_USER_ID": "user_123"
}Available Tools
This MCP server provides the following capabilities to your LLM:
search_assets: Perform exact or hybrid semantic vector searches across your media.get_asset: Retrieve deep metadata profiles for resources.upload_asset: Automatically infers MIME types and effortlessly uploads local files into Picsha's asynchronous AI ingest pipeline.generate_render_url: Provides on-the-fly image transformations and AI generative fill parameters.trigger_url_ingest: Ingest public web media directly into the DAM.moderate_asset,link_assets,create_dam_group,update_asset,delete_asset...and more!
Troubleshooting
Claude Desktop Hangs or Fails to Connect
If you are using macOS and Claude Desktop gets stuck connecting to the MCP (or the tools never show up), it is likely due to npx dropping standard input/output streams. To fix this:
Install the server globally instead of using
npx:npm install -g @picsha-ai/mcp-serverUpdate your
claude_desktop_config.jsonto point directly to the installed binary:{ "mcpServers": { "picsha-ai": { "command": "picsha-ai-mcp", "args": [], "env": { "PICSHA_API_TOKEN": "<YOUR_API_TOKEN_HERE>" } } } }Restart Claude Desktop.
Available Tools
14 toolscreate_dam_groupA
Create a new Digital Asset Management (DAM) group/collection (folder) to organize assets.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the collection/folder | |
| description | No | A description for the group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It discloses the creation action but omits behavioral traits such as idempotency, error handling, or authorization needs. For a simple creation, this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no redundancy. Every word contributes to clarity and purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema) and good schema coverage, the description is nearly complete. It could mention the return value or hierarchical context, but overall it sufficiently informs an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear param descriptions. The tool description adds no additional semantics beyond 'organize assets'. Baseline score of 3 is appropriate since the schema already handles param meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('DAM group/collection (folder)'), and the purpose ('to organize assets'). It is specific and distinguishes from sibling tools, which deal with assets rather than groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating a group but provides no explicit guidance on when to use versus alternatives, prerequisites, or exclusions. It is adequate but lacks detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_assetA
Permanently delete an asset from the database, search indexes, and physical storage.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique ID of the asset to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses permanent deletion affecting multiple layers, but no annotations provided. Lacks details on authorization, irreversibility confirmation, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words, front-loaded with critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion with one parameter, the description provides essential behavioral context. Could be improved with usage caveats but is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'id'. The tool description does not add extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (permanently delete), the resource (asset), and the scope (database, search indexes, physical storage). It distinguishes from siblings like 'get_asset' or 'update_asset'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use versus alternatives like 'moderate_asset' or 'update_asset'. Does not specify prerequisites or conditions for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
escalate_to_supportA
Use this tool ONLY when you need to log a feature request, report a documentation gap, or escalate an issue to the engineering team. This will actually send an email to support@picsha.ai.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | Yes | The subject of the escalation email | |
| headline | Yes | A short, punchy headline for the email (e.g. 'Docs Gap Report') | |
| message | Yes | The full summary of the request, formatted nicely. Use \n for line breaks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states that the tool sends an email, but does not disclose potential side effects (e.g., no undo, expected response time) or authentication requirements. The information is accurate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; front-loaded with the usage constraint and clear action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with no output schema, the description covers purpose, usage, and email destination. It could mention immediacy or confirmation behavior, but is sufficiently complete for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds extra value by instructing to use '\n' for line breaks in the message parameter, which aids correct usage beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool logs feature requests, documentation gaps, or escalates issues, and specifies it sends an email to support@picsha.ai. This verb-resource combination is specific and distinct from sibling tools which are all asset-related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this tool ONLY when you need to...', providing clear guidance on when to use it and implicitly excluding asset management scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assetB
Retrieve detailed metadata and AI analysis results for a specific asset
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique ID of the asset to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'retrieve', which implies a read operation. It does not disclose authorization needs, rate limits, error handling (e.g., if asset not found), or any side effects. The agent lacks behavioral context beyond the verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence of 12 words, front-loading the action. It contains no fluff, though it could be slightly more informative about the return structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and no output schema, the description is adequate but could better clarify what 'detailed metadata' and 'AI analysis results' include. The absence of an output schema makes it harder for the agent to interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'id' is fully covered by the schema description ('The unique ID of the asset to retrieve'). The tool description adds no additional meaning beyond the schema, so it meets the baseline for high coverage (100%).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and the resource 'asset', specifying both metadata and AI analysis results. This distinguishes it from sibling tools like list_recent_assets or search_assets, which operate on collections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a single asset's details, but does not explicitly state when to use this tool versus alternatives like list_recent_assets or search_assets. No guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rendered_asset_urlB
Generate a dynamic delivery URL for an asset with transformation parameters (e.g. width, height, format, smart crop)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique ID of the asset | |
| params | Yes | Query parameters string for transformations (e.g. 'w=500&h=500&fmt=webp&crop=face') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read-only operation but does not disclose behavioral traits such as error handling when the asset ID is invalid, rate limits, authentication requirements, or whether the URL generation involves network calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is front-loaded and efficiently communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately conveys the tool's core function of generating a URL, but it lacks detail on return format, error conditions, or any side effects. Given the simple two-parameter schema and no output schema, it is minimally complete but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The description adds an example of transformation parameters but does not provide significant additional semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a dynamic delivery URL for an asset with transformation parameters. The verb 'generate' and resource 'dynamic delivery URL' are specific, and the scope is well-defined with examples. It distinguishes itself from siblings like 'get_asset' which retrieves asset metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or when not to use it. Given the array of sibling tools, explicit usage guidance would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_assetsB
Link a source/parent asset to a target/child asset (e.g. variations, derived formats, social crops) with a custom relationship description.
| Name | Required | Description | Default |
|---|---|---|---|
| sourceId | Yes | The parent/source asset ID | |
| targetId | Yes | The child/target asset ID | |
| relationshipType | Yes | Description of the link relationship (e.g. 'variation', 'social_crop', 'thumbnail') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose behavioral traits such as side effects, mutability, or reversibility. For a tool with no annotation coverage, the description should provide more behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundant information. Efficiently conveys purpose and examples without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 required parameters, no output schema, and no annotations, the description omits what happens upon linking (e.g., persistence, validation, side effects). Incomplete for an agent to fully understand tool behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds minimal value beyond schema (e.g., rephrases relationship purpose). Baseline score of 3 is appropriate as schema already documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Link' and resources 'source/parent asset' and 'target/child asset', with examples in parentheses, making purpose unambiguous and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., create_dam_group, update_asset). Implies usage for creating relationships but lacks when-not scenarios or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recent_assetsB
List recently added assets in the Picsha platform. IMPORTANT: When replying to the user, ALWAYS format this as a clean Markdown table with columns for ID, Original Name, Status, and Date.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of assets to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not state that the tool is read-only, what 'recent' means, or whether there are side effects. The formatting instruction is not behavioral.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with purpose. Every sentence adds value; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (1 param, no output schema), the description is mostly adequate but lacks details on what defines 'recent', order, and pagination. The formatting instruction is helpful but does not fill all gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the single 'limit' parameter. The description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and the resource (recently added assets) and distinguishes from sibling tools like search_assets and get_asset by specifying 'recently added'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like search_assets or get_asset. The description includes a formatting instruction but lacks context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
moderate_assetB
Approve or reject a moderated asset pending manual review.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique ID of the asset | |
| action | Yes | The moderation action to perform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It only states the action (approve/reject) but does not disclose side effects, reversibility, permissions required, or the outcome of approval (e.g., asset goes public) or rejection (e.g., asset is removed).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately conveys the core function. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two parameters, no output schema), the description covers the basic purpose. However, it lacks details on state transitions and post-action effects, which are important for an agent to understand the full impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description adds no extra information beyond what the schema already provides (e.g., action values). Baseline of 3 is appropriate as no added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool approves or rejects a moderated asset pending manual review, using a specific verb and resource. It is distinct from sibling tools like create_dam_group or delete_asset, but does not explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no scenarios where it should not be used. The phrase 'pending manual review' hints at context but is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reanalyze_assetB
Manually trigger AI re-analysis on an existing asset to detect faces, objects, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique ID of the asset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully convey behavioral traits. It fails to disclose whether the operation is synchronous or asynchronous, idempotent, or if it overwrites previous analysis. It also lacks information on required permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant text. It efficiently conveys the core purpose without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no annotations or output schema, the description provides minimal context. It explains what the tool does but omits details about return value, whether the operation is immediate or queued, and any constraints. It is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'id' already described as 'The unique ID of the asset'. The tool description adds no additional meaning, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool triggers AI re-analysis on an existing asset to detect entities like faces and objects. The verb 'trigger' and resource 'asset' are specific, and it distinguishes from sibling tools like 'moderate_asset' or 'get_asset'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'moderate_asset' or 'summarize_asset'. There is no mention of prerequisites, post-conditions, or scenarios where re-analysis is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_assetsA
Search for assets in the Picsha AI platform using vector or standard keyword search. Note: If your agent instance is sandboxed to a specific user via environment variables, this search will ONLY return assets owned by that specific user. You are securely retrieving their contextual assets.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query string. You can append natural language dates/actions like 'added today' or 'uploaded last week' to filter by time. | |
| mode | No | Search mode. 'ai' uses vector hybrid search, 'standard' uses exact keyword / tag matching. | ai |
| threshold | No | Confidence threshold for AI searches (0.0 to 1.0) | |
| sort | No | Sort order for the results | relevance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses sandboxing behavior (returns only user's assets if sandboxed) and search modes. Lacks mention of pagination or rate limits, but adds meaningful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-loaded with purpose followed by a critical usage constraint. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 4 parameters, the description is mostly complete. It explains search behavior and sandboxing. Could mention that results are a list of assets, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds extra meaning: explains natural language date filtering in query and differentiates mode options. This improves upon the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search for assets... using vector or standard keyword search.' It differentiates from siblings like get_asset (single asset) and list_recent_assets by focusing on query-based search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (search when you have a query) and distinguishes between vector and standard modes. However, it does not explicitly state when not to use this tool versus alternatives like get_asset for known IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_assetB
Utilize Claude Sonnet via Amazon Bedrock to summarize documents on demand
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique ID of the asset (document/text) to summarize |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It fails to mention whether the tool is read-only, if it modifies the asset, any rate limits, cost implications, or content safety considerations. The phrase 'on demand' gives minimal insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the main purpose. It is concise, but could include more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that invokes an external AI model with one parameter and no output schema, the description is incomplete. It does not specify the output format, how to retrieve the summary, or any limitations of the summarization (e.g., length, style).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear parameter description ('The unique ID of the asset (document/text) to summarize'). The tool description adds no additional meaning beyond the schema, achieving baseline adequacy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (summarize documents) and the resource (assets), using specific technology (Claude Sonnet via Amazon Bedrock). It distinguishes from all sibling tools, none of which offer summarization functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives, when not to use it, or any prerequisites. The description is purely declarative without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_url_ingestB
Ingest a public web asset directly into the Picsha AI platform by downloading and putting it through the ingestion pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL of the media asset to download and ingest | |
| filename | No | Optional original filename to associate with the asset | |
| config | No | Configuration for AI processing, mimicking ingest options |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates the tool downloads and processes the asset, implying mutation and AI processing. However, with no annotations, it could be more transparent about side effects (e.g., storage location, idempotency). It does not contradict annotations (none provided).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence. Every word is necessary; no fluff. It is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, a nested config, and no output schema, the description lacks detail on what the tool returns (e.g., asset ID) or error conditions. It does not explain the ingestion pipeline's outcome, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes parameters adequately. The description adds no new meaning beyond restating 'public web asset' and 'ingestion pipeline'. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Ingest') and resource ('public web asset') and states the action (downloading and putting through ingestion pipeline). It clearly distinguishes this tool from siblings like 'upload_asset' (which is for file uploads) and other asset management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., upload_asset). There is no mention of prerequisites, such as the URL needing to be publicly accessible, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_assetA
Update an asset's tags or custom metadata. Prefix a tag with a hyphen (e.g. '-discard') to remove it, or specify normally to add it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique ID of the asset | |
| name | No | Optional new name/title for the asset | |
| tags | No | Array of strings to append as tags. Prefix with a hyphen to remove. | |
| metadata | No | Custom key-value dictionary to attach |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description covers tag removal syntax but lacks details on behavior for name updates, metadata merging, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with front-loaded purpose and no filler. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing behavioral details for a mutation tool with 4 parameters, nested objects, and no output schema. Incomplete guidance on name updates and metadata handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters. Description adds value by explaining tag prefix syntax for removal, but does not elaborate on 'name' or 'metadata' beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an asset's tags or custom metadata,' specifying the verb and resource. It distinguishes from sibling tools like 'delete_asset' and 'get_asset'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides specific syntax for adding/removing tags, but no guidance on when to use this tool versus alternatives like 'summarize_asset' or 'moderate_asset'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_assetA
Upload a local file directly to the Picsha AI platform. This acts as a proxy, fetching a pre-signed S3 URL and executing the PUT request automatically. If your agent is running with user sandboxing, this file will automatically be securely bound to that user's identity. Note: Uploading immediately triggers the asynchronous 'picsha-ai-ingest' pipeline which will extract metadata, generate thumbnails, and run AI analysis (faces, tags, bedrcock summaries). Therefore, the returned asset will initially be in a 'pending' state. You should use the 'get_asset' tool a few seconds after uploading to retrieve the final AI-processed results.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute path to the local file (e.g. /Users/name/images/photo.jpg) to upload | |
| filename | No | Optional original filename to associate with the asset. Defaults to the file's basename. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. Discloses proxy behavior, sandboxing binding, async pipeline triggering, pending state, and recommendation for retrieval. Comprehensive for a simple upload tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Moderately sized but every sentence earns its place. Logical flow: purpose, proxy details, sandboxing, pipeline, state, recommendation. Slightly verbose but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations or output schema, description covers all necessary aspects: input, process, side effects, state transitions, and next steps. Sufficient for correct invocation and expectation management.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds value: filePath example format and absolute path hint, filename default behavior. Enhances schema without repeating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes a specific action (upload) and resource (local file to Picsha AI platform) with clear scope (directly, via proxy). Differentiates from siblings like trigger_url_ingest which handles URL ingestion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: uploading local files. Mentions sandboxing binding and async pipeline, implying post-upload step (use get_asset). Does not explicitly list when not to use or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
14 tool updates
v1.0.12- First observed
create_dam_group - First observed
delete_asset - First observed
escalate_to_support - First observed
get_asset - First observed
get_rendered_asset_url - First observed
link_assets - First observed
list_recent_assets - First observed
moderate_asset - First observed
reanalyze_asset - First observed
search_assets - First observed
summarize_asset - First observed
trigger_url_ingest - First observed
update_asset - First observed
upload_asset
TDQS
Each tool has a clearly distinct purpose: CRUD for assets, group creation, search, ingestion, AI analysis, moderation, and support escalation. Overlap between upload_asset and trigger_url_ingest is clarified by their descriptions (local file vs URL).
Tool names uniformly follow snake_case with a verb_noun pattern (e.g., create_dam_group, get_asset, update_asset). This provides predictable naming for an agent to infer functionality.
14 tools is well-scoped for a digital asset management platform with AI features. Each tool represents a distinct action without unnecessary redundancy, covering ingestion, search, retrieval, analysis, and administration.
Core asset lifecycle (create/read/update/delete), search, AI analysis, and moderation are covered. Missing update/deletion for groups and lack of bulk operations are minor gaps, but the surface is solid for typical workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP-Native LLM Orchestration Agent
MCP server for building and testing AI agents with multi-model experimentation and insights.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for multi-provider AI image generation (AWS Bedrock, OpenAI, Google Gemini) enabling image generation, transformation, and editing through a unified interface.41MIT
- AlicenseNot gradedqualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.62MIT
- AlicenseNot gradedqualityCmaintenanceProduction-ready MCP server enabling LLM text generation, template management, context-aware conversations, and memory storage with enterprise quality assurance.72MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for fal model discovery, execution, pricing, and local media processing, enabling AI model workflows via natural language.85MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/picsha-ai/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server