@echosaw/mcp-server
v2.1.0
Published
Echosaw MCP Server - Media intelligence for AI assistants. Connect your LLM to Echosaw and analyze media directly within your workflow.
Maintainers
Readme
DEPRECATED: The local stdio MCP server is deprecated. Use the remote MCP server at
https://mcp.echosaw.cominstead. See MCP Integration Guide for setup instructions. The remote server uses OAuth 2.0 and requires no local installation.The one thing the remote server cannot do is upload a file from your local disk:
echosaw_analyze_mediaexists only here. Keep this package installed if you need local-file submission; useechosaw_analyze_media_urlon the remote server otherwise.
@echosaw/mcp-server
Echosaw MCP Server — AI assistant integration for media intelligence.
The Echosaw MCP server connects AI assistants (Claude Desktop, Cursor, and other MCP-compatible clients) to Echosaw's media intelligence platform. Submit media for analysis, check status, retrieve intelligence reports, and download source files — all from within your AI-powered development environment.
Prerequisites
- Node.js 18+ (minimum version supported by
@modelcontextprotocol/sdk) - Echosaw API key — Your API key is e-mailed to you after subscribing to a Starter, Growth, Pro, or Agency plan.
Installation
npm install -g @echosaw/mcp-serverEnvironment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| ECHOSAW_API_KEY | Yes | — | Your Echosaw API key |
| ECHOSAW_API_URL | No | https://api.echosaw.com | API base URL (override for gamma/staging) |
Client Configuration
Claude Desktop
Add the following to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"echosaw": {
"command": "echosaw-mcp",
"env": {
"ECHOSAW_API_KEY": "your-api-key"
}
}
}
}Cursor
Add to your Cursor MCP settings:
{
"mcpServers": {
"echosaw": {
"command": "echosaw-mcp",
"env": {
"ECHOSAW_API_KEY": "your-api-key"
}
}
}
}Available Tools
| Tool | Description |
|------|-------------|
| echosaw_analyze_media | Start a new analysis job by uploading a local audio, video, or image file from disk. Entry point that creates a job and begins processing (does not fetch previously analyzed media). Returns a job ID used to track processing and retrieve results. |
| echosaw_analyze_media_url | Start a new analysis job from a publicly accessible or authorized media URL without uploading the file directly. Entry point that creates a job and begins processing (does not fetch previously analyzed media). Returns a job ID used to track processing and retrieve results. |
| echosaw_check_job_status | Retrieve the current processing state of an Echosaw analysis job, including whether the job is queued, processing, completed, or failed. |
| echosaw_get_analysis_results | Retrieve structured analysis results generated by Echosaw for a completed job, including summaries, transcripts, detected entities, events, and other intelligence outputs. Supports an optional section parameter (summary, transcript, safety, insights, metadata, downloads, all) to reduce response size. |
| echosaw_download_media | Retrieve the original source media file of an already-analyzed job by generating a presigned download URL for it. Fetches existing media only — does not upload or start analysis. The URL is valid for 1 hour. |
The remote MCP server at https://mcp.echosaw.com includes additional tools: echosaw_search_media, echosaw_list_media (supports server-side filters for mediaType (VIDEO/AUDIO/IMAGE), job status (e.g. COMPLETE), report sentiment (positive/negative/neutral/mixed), and Public Library visibility (isPublic: true/false) in addition to limit and folderPath), echosaw_get_profile, echosaw_get_organization (retrieve your Echosaw organization details — name, your role, creation date, and active member count; returns null if you are not a member of any organization), echosaw_list_folders, echosaw_create_folder, echosaw_move_media, echosaw_rename_folder, echosaw_delete_folder, echosaw_set_media_visibility (toggle Public Library visibility for a media item; requires COMPLETE status; blocked with moderation flags returned when content fails safety checks).
Response Format
All tools return a standardized JSON response:
| Field | Type | Description | |-------|------|-------------| | success | boolean | Whether the operation succeeded | | tool | string | The tool that produced this response | | responseVersion | string | Response schema version (currently "1.0") | | data | object | Tool-specific result data | | message | string? | Human-readable summary | | error | string? | Error description (when success is false) | | nextAction | object? | Suggested next tool to call |
Example Workflow
Submit a file for analysis:
"Analyze the video at /Users/me/Downloads/interview.mp4"
The assistant calls
echosaw_analyze_mediawith the path andmediaType: "video", returning amediaId.Check processing status:
"What's the status of that analysis?"
The assistant calls
echosaw_check_job_statuswith themediaId.Retrieve results:
"Show me the results"
Once complete, the assistant calls
echosaw_get_analysis_resultsto retrieve the full intelligence report including transcript, safety analysis, content insights, and metadata.Download source media:
"Get me a download link for that video"
The assistant calls
echosaw_download_mediato get a presigned URL valid for 1 hour.
Development
# Clone and build
cd lib/mcp-server
npm install
npm run build
# Run directly
ECHOSAW_API_KEY=your-key node dist/bin/echosaw-mcp.js