{"_id":"@abyssbug/vision-mcp","name":"@abyssbug/vision-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@abyssbug/vision-mcp","version":"0.1.0","description":"Local, API-free Vision MCP server for image and video analysis","main":"dist/cli.js","type":"module","bin":{"vision-mcp":"dist/cli.js"},"scripts":{"build":"tsc -p .","start":"node dist/cli.js","dev":"tsx src/cli.ts","prepublishOnly":"npm run build"},"keywords":["mcp","vision","image","video","ffmpeg","api-free"],"author":{"name":"abyssbug"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","zod":"^3.23.8","execa":"^9.3.0","sharp":"^0.33.5"},"devDependencies":{"@types/node":"^22.8.7","tsx":"^4.19.1","typescript":"^5.6.3"},"_id":"@abyssbug/vision-mcp@0.1.0","_nodeVersion":"24.10.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-XIvFH7BJrZG0QQJZ4nfFDaBOsXaYZCnNjMSmGNbuBEvDYRVjYKtUir/l2EXFeAkgXNJy9cEzoRQFY0JHfXnzNA==","shasum":"88071211cae7e081f3729848a3b471703e41ab39","tarball":"https://registry.npmjs.org/@abyssbug/vision-mcp/-/vision-mcp-0.1.0.tgz","fileCount":8,"unpackedSize":11534,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD3ttFN6VciOQUZqTIQ2+UryaH+IHZegZKjuewg1FE98wIgF//AuDpxS9Y4vOkFxLBOaqT+ORdbXC/b0uD5KgWXYfI="}]},"_npmUser":{"name":"abyssbug","email":"human.nbaby@gmail.com"},"directories":{},"maintainers":[{"name":"abyssbug","email":"human.nbaby@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vision-mcp_0.1.0_1760970431041_0.7886019362000471"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-20T14:27:10.955Z","0.1.0":"2025-10-20T14:27:11.283Z","modified":"2025-10-20T14:27:11.555Z"},"maintainers":[{"name":"abyssbug","email":"human.nbaby@gmail.com"}],"description":"Local, API-free Vision MCP server for image and video analysis","keywords":["mcp","vision","image","video","ffmpeg","api-free"],"author":{"name":"abyssbug"},"license":"MIT","readme":"# @abyssbug/vision-mcp\n\nLocal, API-free Vision MCP server for image and video analysis. Works with any MCP-compatible client (OpenCode, Claude, etc.) without requiring external API keys.\n\n## Features\n\n- **Image Analysis**: Process images with optional resizing/compression\n- **Video Analysis**: Extract frames using ffmpeg with uniform or scene-based sampling\n- **No API Keys**: Works entirely locally with your chosen model\n- **Provider Agnostic**: Compatible with GLM 4.6/4.5, Claude, and other vision-capable models\n\n## Installation\n\n### For OpenCode/Claude Desktop\n\nAdd to your MCP configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"vision-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@abyssbug/vision-mcp\"\n      ]\n    }\n  }\n}\n```\n\n### Prerequisites\n\n- Node.js >= 22.0.0\n- ffmpeg and ffprobe (for video analysis)\n\nInstall ffmpeg:\n```bash\n# macOS\nbrew install ffmpeg\n\n# Ubuntu/Debian\nsudo apt install ffmpeg\n\n# Windows\n# Download from https://ffmpeg.org/download.html\n```\n\n## Usage\n\n### Image Analysis\n\nCall the `image_analysis` tool with:\n```json\n{\n  \"path\": \"./image.png\",\n  \"maxWidth\": 1024\n}\n```\n\n### Video Analysis\n\nCall the `video_analysis` tool with:\n```json\n{\n  \"path\": \"./video.mp4\",\n  \"maxFrames\": 12,\n  \"width\": 1024,\n  \"strategy\": \"uniform\"\n}\n```\n\n## Configuration\n\nSet environment variables for limits (optional):\n\n```bash\nMAX_BYTES=52428800      # Max file size (default: 50MB)\nFRAME_LIMIT=24          # Max frames per video (default: 24)\nDEFAULT_WIDTH=1024       # Default resize width (default: 1024)\nTEMP_DIR=/tmp           # Temp directory (default: system temp)\n```\n\n## How It Works\n\n1. **No Inference**: This MCP only preprocesses media (resize, extract frames)\n2. **Model Agnostic**: Your chosen model performs the actual vision understanding\n3. **Local Processing**: All operations happen locally with ffmpeg and sharp\n4. **Base64 Output**: Returns processed media as base64-encoded content\n\n## Tools\n\n### `image_analysis`\n- Validates and optionally resizes images\n- Returns base64-encoded image content\n- Supports local paths and URLs\n\n### `video_analysis`\n- Extracts frames using ffmpeg\n- Supports uniform and scene-based sampling\n- Returns multiple base64-encoded frame images\n- Includes timestamps for each frame\n\n## License\n\nMIT","readmeFilename":"README.md","_rev":"1-f009d265455255be93fae7d47a9ccbaf"}