# Aspect Agent and MCP Source: https://aspect.inc/docs/ai-intelligence/aspect-agent-and-mcp Choose between Aspect's built-in assistant and an external AI assistant connected through MCP. Aspect provides two ways to work with AI: the built-in **Aspect Agent** and **Aspect MCP** for external assistants such as Claude or ChatGPT. Both can work with your Aspect media context, but they run in different places and are suited to different workflows. ## Aspect Agent Aspect Agent is built directly into Aspect. Use it when you want to work with your media library without leaving the Aspect workspace. It is the best starting point for everyday library work, including finding content and working with information already stored in Aspect. ## Aspect MCP Aspect MCP connects a compatible external AI assistant to Aspect. After connecting, the external assistant can use supported Aspect tools and media context while you continue working in that assistant. Use MCP when your workflow starts in Claude, ChatGPT, or another compatible client and needs access to Aspect. MCP provides the connection and supported tools. Scheduling, background automation, and event triggers must be handled by the external assistant or another workflow service. ## Choose the right option | Use | Choose | | - | - | | Work directly inside Aspect | Aspect Agent | | Use Claude or ChatGPT with Aspect context | Aspect MCP | | Complete everyday searches and library tasks in the Aspect workspace | Aspect Agent | | Combine Aspect with a broader external-assistant workflow | Aspect MCP | You can use both. Aspect Agent supports work inside Aspect, while MCP makes supported Aspect capabilities available to an external assistant. Learn how to use the built-in Aspect Agent. Connect a compatible external AI assistant to Aspect. # API overview Source: https://aspect.inc/docs/api-reference/index Authenticate with an API key and work with your Aspect workspaces, projects, and assets over REST The Aspect REST API gives you programmatic access to everything in your media library: workspaces, projects, directories, assets, collections, search, transcripts, metadata, comments, and share links. All requests go to a single base URL: ```text theme={null} https://api.aspect.inc ``` ## Authentication Aspect API keys start with `sk_`. Send your key in the `Authorization` header - the `Bearer` prefix is accepted but optional: ```bash theme={null} curl -H "Authorization: Bearer sk_your_api_key" \ https://api.aspect.inc/users/me ``` A successful response returns the user who owns the key, which makes `GET /users/me` a quick way to verify your setup. ### Creating an API key In the [Aspect web app](https://app.aspect.inc), open **Settings** and go to the **API Keys** page under your personal settings. Click **Create new API Key** and give it a descriptive name. The key value is shown only once at creation time - it cannot be retrieved again. Store it somewhere safe. An API key acts as you: every request is checked against your own workspace and project permissions. Keep keys out of client-side code and public repositories. You can also manage keys over the API itself: `POST /api-keys` creates a key, `GET /api-keys` lists your keys (metadata only, never the key values), and `DELETE /api-keys/{api_key_id}` revokes one. ## Resource model Everything in Aspect lives in a simple hierarchy: * **Workspace**: the top-level organization unit. Users belong to workspaces. * **Project**: a container inside a workspace that holds directories and assets. * **Directory**: a folder within a project. Directories can nest. * **Asset**: a video, image, audio, or document file that Aspect indexes with AI. * **Collection**: a user-curated grouping of assets and directories within a project. When an asset is uploaded, Aspect automatically processes it with AI in the background (transcription, visual understanding, instant playback, and more) - there is no processing step to trigger via the API. Permissions are inherited down the tree, so access granted on a project applies to the directories and assets inside it. For a deeper introduction, see [Core concepts](/docs/concepts/core-concepts). ## Request conventions * Request and response bodies are JSON. IDs are UUIDs. * Response codes depend on the endpoint. Check the expected status code and response body when integrating an endpoint. * Many list endpoints are `POST` requests with a JSON body rather than `GET` - for example `POST /assets/list` and `POST /directories/list` take a required `parent_id` plus optional `limit`, `offset`, `filters`, and `sorts`. Other lists use `offset`/`limit` query parameters. For example, listing the assets in a directory: ```bash theme={null} curl -X POST https://api.aspect.inc/assets/list \ -H "Authorization: Bearer sk_your_api_key" \ -H "Content-Type: application/json" \ -d '{"parent_id": "6c8e9a1f-0b0e-4a6a-9c94-1f2d3e4a5b6c", "limit": 50}' ``` ## Endpoint reference The per-endpoint reference is being reworked and will return here soon. ## Beyond REST Connect Claude, ChatGPT, Cursor, or any MCP client to your Aspect library through our hosted MCP server. # MCP server Source: https://aspect.inc/docs/api-reference/mcp Connect your AI tools to search and organize media, read transcripts, and collaborate in Aspect Aspect hosts a remote [Model Context Protocol](https://modelcontextprotocol.io) server, so AI tools you already use can search and organize your media, read transcripts and document text, and collaborate on your media library: ```text theme={null} https://api.aspect.inc/mcp ``` It is a Streamable HTTP MCP endpoint. MCP tools use Aspect's operation layer and follow the permissions of the authenticated user. For Aspect's built-in experience, see [Aspect Agent](/docs/asset-intelligence/ask-aspect). ## Authentication Two options: * **OAuth sign-in**: clients that support MCP OAuth (Claude, ChatGPT, Cursor, and others) prompt you to sign in to your Aspect account when you add the server. This is the easiest path. * **API key**: send an Aspect API key (`sk_...`) as a Bearer token in the `Authorization` header. Use this for clients or scripts that can attach explicit headers. See the [API overview](/docs/api-reference/index) for how to create a key. Either way, every tool call is checked against your own workspace, project, directory, collection, and asset permissions - the MCP server can never do more than you can. ## Connecting a client 1. In Claude Desktop or claude.ai, open **Settings**, then **Connectors**. 2. Click **Add custom connector**. 3. Paste the Aspect server URL: `https://api.aspect.inc/mcp` 4. Click **Connect** and sign in to Aspect when prompted. 1. Open **Settings** and turn on **Developer mode** (Connectors). 2. Add a new connector / MCP server. 3. Paste the server URL: `https://api.aspect.inc/mcp` 4. Sign in to Aspect when prompted. 1. Open **Settings**, then **MCP**, and add a new server (or edit `~/.cursor/mcp.json`). 2. Add the configuration below. 3. Sign in to Aspect when prompted. ```json theme={null} { "mcpServers": { "aspect": { "url": "https://api.aspect.inc/mcp" } } } ``` Add Aspect as a remote (Streamable HTTP) MCP server and authorize with your Aspect account when your client prompts you: ```json theme={null} { "mcpServers": { "aspect": { "url": "https://api.aspect.inc/mcp" } } } ``` If your client does not support OAuth sign-in, configure an `Authorization: Bearer sk_...` header with your API key instead: ```json theme={null} { "mcpServers": { "aspect": { "url": "https://api.aspect.inc/mcp", "headers": { "Authorization": "Bearer sk_your_api_key" } } } } ``` The same setup instructions are available in the web app under **Settings → Aspect Agent & MCP**, with copyable snippets per client. ## Available tools ### Workspaces | Tool | Description | | - | - | | `workspaces_list` | List workspaces available to you. | | `workspaces_get` | Get a workspace you can view. | | `workspaces_update` | Update a workspace you can edit. | | `workspaces_users_list` | List people in a workspace, including roles and project permission counts. | | `workspaces_users_add` | Add people to a workspace with workspace roles. | | `workspaces_users_update` | Update workspace roles for people. | | `workspaces_users_remove` | Remove people from a workspace, including their project permissions. | | `workspaces_users_all_project_access_list` | List a person's project access: effective roles, project defaults, and explicit overrides. | ### Projects | Tool | Description | | - | - | | `projects_list` | List projects in a workspace you can view. | | `projects_get` | Get projects by ID. | | `projects_create` | Create projects in a workspace you can edit. | | `projects_update` | Update projects you can edit. | | `projects_users_list` | List people with access to a project, including inherited versus explicit roles. | | `projects_users_add` | Add people to a project with project roles. | | `projects_users_update` | Update project roles for people. | | `projects_users_remove` | Remove explicit project permissions. Workspace members revert to the project default role; limited members lose project access. | For files and folders at the top level of a project, call `projects_get` and use its `root_directory_id` as the parent directory ID. ### Directories | Tool | Description | | - | - | | `directories_list` | List child directories under a directory you can view. | | `directories_get` | Get directories by ID. | | `directories_create` | Create child directories under directories you can edit. | | `directories_update` | Rename or recolor directories. | | `directories_delete` | Move directories to the project trash. | | `fs_items_move` | Move assets, directories, and symlinks to a destination directory. | | `fs_items_copy` | Copy assets, directories, and symlinks into a destination directory via an asynchronous copy job. | Copies can go to another project in the same workspace. When copying across projects, values of project-specific metadata fields and matches to project-specific entities or objects do not carry over. Destination name conflicts are resolved by adding a suffix to the copy's name. ### Assets | Tool | Description | | - | - | | `assets_list` | List assets under a parent resource you can view. | | `assets_get` | Get assets by ID. | | `assets_update` | Rename assets (the new name must include the file extension). | | `assets_delete` | Move assets to the project trash. | | `assets_document_get` | Get extracted text from a document asset (PDF, slide deck, spreadsheet, and more), optionally selecting specific page numbers. | | `assets_timecode_get` | Convert positions in seconds to a video's SMPTE timecodes, matching the Aspect player and using the recorded source start timecode when available. | Timecode conversion accepts multiple positions for one asset in a single call. If the asset has no frame rate usable for timecode, the tool returns null timecodes with a reason. ### Search | Tool | Description | | - | - | | `assets_search` | Search a project or a single asset using visual, transcript, document, and filename signals plus metadata filters; results include matched clip timing. | | `assets_search_capabilities` | List available search channels, filterable metadata attributes, valid filter clauses, and selectable option, Face, and user IDs. | Use `assets_search_capabilities` before building metadata or Face filters. Use `entities_list` to look up the recognized people you want to search for. ### Transcription | Tool | Description | | - | - | | `assets_transcription_get` | Get an asset's transcript, optionally scoped to a start and end time. | ### Asset content | Tool | Description | | - | - | | `assets_content_get` | Read indexed scene captions and speech together in time order for video, image, or audio assets. Filter to visual or transcript entries, or a time range. | Content and transcript tools return indexed information. `assets_content_get` returns no entries when the asset has not been processed or has no content for the requested track. ### Collections | Tool | Description | | - | - | | `collections_list` | List collections in a project you can view. | | `collections_get` | Get collections by ID. | | `collections_create` | Create collections in projects you can edit. | | `collections_update` | Update collections you can edit. | | `collections_delete` | Delete collections where you have full access. | | `collections_items_add` | Add asset or directory items to a collection. | | `collections_items_remove` | Remove asset or directory items from a collection. | ### Metadata | Tool | Description | | - | - | | `metadata_attributes_list` | List metadata attributes available in a project, including custom fields. | | `metadata_attributes_get` | Get metadata attribute details. | | `metadata_attributes_create` | Create custom metadata attributes. | | `metadata_attributes_update` | Update custom metadata attributes. | | `metadata_attributes_delete` | Delete custom metadata attributes. | | `asset_metadata_get` | Get custom metadata values for an asset. | | `asset_metadata_set` | Set custom metadata values on an asset. | ### Comments | Tool | Description | | - | - | | `comments_get` | Get comment threads on resources you can comment on, including replies. | | `comments_search` | Search project comments, with filters for resources, people, resolution state, timestamps, and more. | | `comments_create` | Create plain-text comments or replies on assets, including private/internal comments, video time ranges, and document pages. | Comment creation does not support drawing annotations, text highlights, mentions, or attachments. ### Share links | Tool | Description | | - | - | | `share_links_create` | Create share links for assets, directories, or collections you fully control. | | `share_links_list` | List share links for one resource or a whole project. | | `share_links_update` | Update share links you can manage. | | `share_links_delete` | Delete share links you can manage. | Created and listed links include a `client_url`. Asset share links also include an `embed_url` for embedding the asset in an external site. ### Other | Tool | Description | | - | - | | `entities_list` | List labeled entities (such as recognized people) available for a workspace or project. | | `notifications_list` | List your in-app notifications, including comments, mentions, and replies, filtered by read state. | | `recents_list` | List recently accessed resources in a workspace, most recent first, with pagination. | ## What MCP does not expose MCP does not currently provide: * **File transfers**: no upload endpoints, direct download URLs, or storage tokens. * **Workspace creation or deletion, project deletion, or permanent file deletion**: asset and directory delete tools move items to the project trash. There is no tool to empty trash or permanently delete assets or directories. * **Public share sessions**: share password reveal and public share sessions are not available. Use the [REST API](/docs/api-reference/index) for these workflows. For file transfers and operations outside this tool list, see the [REST API](/docs/api-reference). # SDKs Source: https://aspect.inc/docs/api-reference/sdks Official Aspect SDKs are being reworked and are not currently published Official Aspect SDKs for Node.js and Python are being reworked and are not currently published. In the meantime, integrate directly against the REST API with any HTTP client, or connect an AI tool through the [MCP server](/docs/api-reference/mcp). This page will be updated when the new SDKs ship. Base URL, authentication, and request conventions for the Aspect REST API. # Desktop app Source: https://aspect.inc/docs/apps/desktop The full Aspect experience on macOS and Windows, with faster transfers, tabs, and your projects mounted as a local drive. The Aspect desktop app is available for **macOS and Windows**. It gives you everything from the web app at [app.aspect.inc](https://app.aspect.inc), running as a native app on your computer. Same projects, same search, same viewer - plus capabilities a browser can't offer. [Download Aspect for macOS or Windows](https://aspect.inc/download), install the version for your operating system, and sign in to your Aspect account. ## Why use the desktop app Uploads and downloads run in the app itself rather than a browser tab, so large files and big folder uploads keep moving in the background while you work. Open your Aspect projects as a drive in Finder on macOS or File Explorer on Windows, and work with your files in native apps like Premiere Pro. See the [mounted drive guide](/docs/instant-access/mount-a-project). Open multiple projects, folders, or assets side by side in tabs, with the keyboard shortcuts you already know from your browser. The app updates itself automatically, so you're always on the latest version without reinstalling. ## Working with tabs The desktop app has a tab bar, just like a browser. You can: * Open a new tab and keep several parts of your workspace visible at once - for example, a search in one tab and a review session in another. * Switch, reorder, and close tabs with familiar keyboard shortcuts (new tab, close tab, jump to a specific tab, jump to the last tab). * Navigate back and forward within each tab independently. ## Transfers that keep going Uploading and downloading is where the desktop app really pulls ahead of the browser: * Drag in entire folders - the app walks through everything inside and uploads it all, keeping the folder structure intact. * Transfers continue in the background while you browse, search, and review. * Your transfer history is saved, so you can check what finished and what's still in flight. ## The mounted drive The desktop app also manages the [mounted drive](/docs/instant-access/mount-a-project): your Aspect projects appear as a drive in Finder on macOS or File Explorer on Windows, files download only when you open them, and changes you save sync back to Aspect. You mount and unmount projects, pin files for local access, and control how much disk space Aspect uses - all from inside the desktop app. ## Signing in When you first open the app, it sends you to your browser to sign in, then brings you straight back. Your desktop session is independent from your browser session - signing out of one doesn't sign you out of the other. ## Next steps Browse your whole project in Finder or File Explorer and edit footage directly in your creative tools. All the ways to get files into Aspect. # How AI indexing works Source: https://aspect.inc/docs/asset-intelligence/ai-indexing The moment a file is uploaded, Aspect's AI starts making it searchable, playable, and ready to review - automatically. ## It starts the moment you upload As soon as a file finishes uploading, Aspect's AI begins processing it. You don't need to tag, label, or configure anything - it happens on its own, in the background, while you keep working. Results appear as they're ready. A file's transcript might show up while the rest of its processing is still finishing. ## What you get Every spoken word in your videos and audio files becomes a transcript you can read, search, and click to jump playback to that exact moment. Aspect understands what's happening on screen, so you can find a moment by describing it in your own words - "drone shot over the coastline" or "close-up of hands typing." Aspect recognizes the people who appear in your footage, so you can find every shot of a specific person. Resolution, duration, camera details, and other technical properties are read from every file automatically and made filterable. Together, these power [Search](/docs/asset-intelligence/ai-search) - one search box that finds moments by what was said, what's on screen, who's in the shot, or what a file is called. ## Instant playback Aspect also prepares every file for smooth viewing, so playback starts immediately even for very large originals - and you can hover-scrub a video thumbnail to skim it without opening it. Documents open and render right away, page by page. Your original files are never modified, and you can always download them exactly as uploaded. ## What each file type gets * **Videos**: searchable speech, visual search, people, metadata, and instant playback. * **Images**: visual search, people, and metadata. * **Audio**: searchable speech, metadata, and instant playback. * **Documents**: viewable page by page, with all their text searchable. ## Tracking progress You can see how processing is going at any time: * Files that are still processing show an indicator in the project view. * Open a file to see what's ready and what's still in progress. Search results get better as processing completes. If a file was uploaded moments ago, give it a little time before expecting it to show up in search. ## When files change If you replace a file with a new version of its content, Aspect automatically re-processes it so everything - transcript, search, playback - reflects the new file. There's nothing you need to trigger. # AI Search Source: https://aspect.inc/docs/asset-intelligence/ai-search Find files and exact moments by describing what appears or is said in plain English. AI Search helps you find content without remembering filenames, adding tags, or knowing the exact words used in a video. Describe the shot, quote, person, place, or file you need. Aspect searches visual content, spoken words, people, tags, filenames, and metadata, then returns the files and exact moments that best match your request.