Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.prisme.ai/llms.txt

Use this file to discover all available pages before exploring further.

The Prisme.ai Storage app is a client connector to the Prisme.ai Storage backend (the slug:storage workspace running in the current environment). It can be used either as a Builder app (automations call Storage instructions directly) or as a remote MCP server consumed by an AI agent. The connector exposes the full Storage REST API — files, vector stores, vector-store files, web crawling, RBAC access bindings, per-store API keys, agent skills and admin diagnostics — grouped into 8 entity tools covering ~38 operations. Unlike third-party SaaS connectors, this connector does not require a per-tenant API key. It propagates the caller’s identity to the Storage backend over the platform’s cross-workspace forward-auth mechanism: every call inherits the user × workspace permissions of the user who triggered it, and the Storage backend enforces its own RBAC bindings on top.

Files & Downloads

Upload by URL or bytes, list, download, share and delete files in workspace-scoped storage

Vector Stores & RAG

Create vector stores, attach files (by file_id or URL), trigger reindex, run semantic search, monitor crawling

Access, Keys & Skills

Grant/revoke RBAC bindings per principal, create and rotate per-store API keys, manage reusable agent skills

Prerequisites

  • A Prisme.ai workspace with the Prisme.ai Storage app installed.
  • The end user calling the connector must have the appropriate role on the target vector store / file:
    • viewer — read files, list vector stores, run semantic search
    • contributor — add/remove files in a vector store, trigger recrawls
    • owner — manage access bindings, API keys, skills; delete vector stores
    • admin (platform admin) — admin.getStats, admin.healthCheck, cross-workspace listings (scope=all)
  • For URL-based ingestion (files.upload with url=..., vectorStoreFiles.add with url=...), the URL must be reachable from the Storage backend (public URL or a Prisme.ai share_token).
This connector ships pre-wired to the Storage backend of the current environment (sandbox or prod). No baseUrl or service URL needs to be configured. The MCP server resolves the Storage workspace via slug:storage and forwards the caller’s authentication automatically.

Installation

  1. Go to Apps in your workspace
  2. Search for Prisme.ai Storage and install it
  3. Open the app instance configuration — only the MCP endpoint and key are surfaced; both are auto-populated

Configuration

FieldDescription
MCP EndpointAuto-populated on install — URL of the MCP endpoint for this instance
MCP API KeyAuto-populated on install — signed key used in the mcp-api-key header. Do not modify
There is no third-party credential to configure. The connector forwards the caller’s Prisme.ai identity to the Storage backend on every call, and the backend enforces its own RBAC bindings (see Access below).

Available Instructions

Every instruction resolves identity from the caller’s authenticated request. All vector-store-scoped operations target a vector_store_id; file operations take a file_id; cross-store operations take a scope (own, shared, or all for admins).

Files

InstructionArguments
listFilesconversation_id, purpose, status, limit, page
uploadFileurl, purpose, file_name, mime_type, bytes
getFilefile_id*
deleteFilefile_id*
downloadFileContentfile_id*, redirect, share_token

Vector Stores

InstructionArguments
listVectorStoresscope (own/shared/all), pageSize, page, status, agent_id, include_agents
createVectorStorename, description, embedding, chunking, metadata
getVectorStorevector_store_id*
updateVectorStorevector_store_id*, name, description, metadata
deleteVectorStorevector_store_id*
searchVectorStorevector_store_id, query, top_k, filters, include_metadata
reindexAllVectorStoreFilesvector_store_id*
getVectorStoreAdminUrlvector_store_id*

Vector Store Files

InstructionArguments
listVectorStoreFilesvector_store_id*, status, limit, page, agent_id
addFileToVectorStorevector_store_id*, file_id, url, tags, metadata, force_recrawl, file_name, mime_type, headers, agent_id
getVectorStoreFilevector_store_id, file_id
updateVectorStoreFilevector_store_id, file_id, tags, metadata
deleteVectorStoreFilevector_store_id, file_id
getVectorStoreFileChunksvector_store_id, file_id, limit, page
reindexVectorStoreFilevector_store_id, file_id

Web Crawling

InstructionArguments
getCrawlStatusvector_store_id*
recrawlWebSourcesvector_store_id*, websites
getWebSourceCountsvector_store_id*

Access (RBAC)

InstructionArguments
listVectorStoreAccessvector_store_id*, limit, page
grantVectorStoreAccessvector_store_id, principal_type, principal_id, role
updateVectorStoreAccessvector_store_id, binding_id, role*
revokeVectorStoreAccessvector_store_id, binding_id

API Keys

InstructionArguments
listAPIKeysvector_store_id*, limit, page
createAPIKeyvector_store_id, name, slug, permissions, expiresAt
revokeAPIKeyvector_store_id, key_id
rotateAPIKeyvector_store_id, key_id

Skills

InstructionArguments
listSkillssearch, pageSize, page
createSkillname, display_name, description, instructions, tools
getSkillskill_id*
updateSkillskill_id*, name, display_name, description, instructions, tools
deleteSkillskill_id*

Admin

InstructionArguments
getStorageStatsscope (own/shared/all)
healthCheck(none)
Arguments flagged with * are required. Calls run with the caller’s identity; the Storage backend rejects anonymous calls.

DSUL Examples

Upload a file from a URL and add it to a vector store

- Prisme.ai Storage.files:
    action: upload
    url: 'https://example.com/whitepapers/q2-results.pdf'
    purpose: 'rag'
    file_name: 'q2-results.pdf'
    mime_type: 'application/pdf'
    output: uploaded
- Prisme.ai Storage.vectorStoreFiles:
    action: add
    vector_store_id: '{{knowledgeBaseId}}'
    file_id: '{{uploaded.file_id}}'
    tags:
      - quarterly-report
      - q2
    metadata:
      source: 'corporate-whitepapers'
      year: 2026

Create a vector store and grant access to a team

- Prisme.ai Storage.vectorStores:
    action: create
    name: 'Customer Support KB'
    description: 'Searchable knowledge base for the support team'
    embedding:
      model: 'text-embedding-3-large'
      dimensions: 3072
    chunking:
      strategy: 'auto'
    output: store
- Prisme.ai Storage.access:
    action: grant
    vector_store_id: '{{store.id}}'
    principal_type: 'group'
    principal_id: '{{supportTeamGroupId}}'
    role: 'contributor'
- Prisme.ai Storage.vectorStores:
    action: search
    vector_store_id: '{{knowledgeBaseId}}'
    query: '{{user.question}}'
    top_k: 5
    filters:
      year: 2026
    include_metadata: true
    output: hits

Trigger a recrawl after web sources changed

- Prisme.ai Storage.crawling:
    action: recrawl
    vector_store_id: '{{knowledgeBaseId}}'
    websites:
      - 'https://docs.example.com'
      - 'https://blog.example.com'

Issue a per-store API key for an external client

- Prisme.ai Storage.apiKeys:
    action: create
    vector_store_id: '{{knowledgeBaseId}}'
    name: 'integration-test-suite'
    slug: 'qa-tests'
    permissions:
      - 'vector_store:read'
      - 'vector_store:search'
    expiresAt: '2026-12-31T23:59:59Z'
    output: created

Error Handling

HTTP StatusMeaningTypical Cause
400Bad RequestMissing required field (e.g. embedding on createVectorStore), invalid principal_type, malformed metadata filter
401UnauthorizedThe forward-auth chain did not propagate the caller’s identity. The Storage backend rejects anonymous calls
403ForbiddenThe caller does not have the required role on the target store/file (e.g. viewer cannot add files; only owner can grant access)
404Not FoundVector store / file / binding / skill does not exist
409ConflictDuplicate slug / unique-property collision (e.g. an API key with the same slug already exists)
429Rate LimitedStorage backend quota exceeded — back off and retry
500 / 503Server ErrorTransient backend failure — retry with exponential backoff

Common Issues

“Not configured” — Should not normally happen for this connector since it carries no external credential. If you see it, reinstall the app instance to regenerate the MCP API key. “Invalid API key” (MCP) — The mcp-api-key header does not match the central app secret. Reinstall the app instance to regenerate a signed key. “Anonymous request rejected” (401) — The caller’s Prisme.ai identity did not make it through to the Storage backend. This usually means the MCP call is being made from a tool client that does not propagate the workspace JWT. Use the Agent Creator capability or call from a DSUL automation, both of which forward identity correctly. addFileToVectorStore ignored my file_name when using url — URL-based ingestion of vector-store files drops the file_name argument. If you need filename control, upload the file first via files.upload and then add it via vectorStoreFiles.add with file_id. force_recrawl had no effect — Make sure you also pass the original url argument; the backend keys recrawl identity off the URL, not the file_id. Empty list when listing vector stores — By default listVectorStores returns only scope: own. Add scope: shared to include stores shared with you, or scope: all if you are a platform admin.

External Resources

Storage backend overview

Prisme.ai Storage workspace architecture, RBAC model and crawling pipeline

Tool Agents

Build AI agents that call MCP tools dynamically