{"_id":"0eye-vision-mcp","_rev":"3-3fcfbdc5b2a7206e70ebf74e818db4bc","name":"0eye-vision-mcp","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"0eye-vision-mcp","version":"1.0.0","keywords":[],"author":"","license":"ISC","_id":"0eye-vision-mcp@1.0.0","maintainers":[{"name":"swarnshekhar","email":"swarnshekhar21j@gmail.com"}],"dist":{"shasum":"94945f936dc69dd625b16096ba6483d80d02b087","tarball":"https://registry.npmjs.org/0eye-vision-mcp/-/0eye-vision-mcp-1.0.0.tgz","fileCount":19,"integrity":"sha512-PfpRWTHHGPlMzno9lEXGxADomZyho8Km68XhMGHx9kwOiMO2++aMiIcgB+lEK7fQwrXMQC3kH83n8kO5pTzTwg==","signatures":[{"sig":"MEUCICZY9v2wyZ/Zi01pa+q8vKssAGyIkcikbIDdZxVLKIL7AiEAlBs5Ko5V2s2litwIUJvFgu+My8IEVYxpr28JBiJz5sY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13308},"main":"index.js","type":"module","gitHead":"a3783b220219359598c8b65c8bd0e40bb7795148","scripts":{"build":"tsc && node dist/index.js"},"_npmUser":{"name":"swarnshekhar","email":"swarnshekhar21j@gmail.com"},"_npmVersion":"10.9.4","description":"","directories":{},"_nodeVersion":"22.21.0","dependencies":{"fs":"^0.0.1-security","zod":"^3.25.76","dotenv":"^17.4.2","@openrouter/sdk":"^0.12.79","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/0eye-vision-mcp_1.0.0_1781205916123_0.46303271439369453","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"0eye-vision-mcp","version":"1.0.1","keywords":[],"author":"","license":"ISC","_id":"0eye-vision-mcp@1.0.1","maintainers":[{"name":"swarnshekhar","email":"swarnshekhar21j@gmail.com"}],"dist":{"shasum":"15cff0ecdd7b876595b93dfe942418f6f8f772fb","tarball":"https://registry.npmjs.org/0eye-vision-mcp/-/0eye-vision-mcp-1.0.1.tgz","fileCount":19,"integrity":"sha512-P4yApkjpCVApBKvQfz1IDyKr4zQD/MDwBVRYwLy+z5qDGnTPevnUgNOQuy5qkunPnT4bNyZ43pz145PWKx7p9w==","signatures":[{"sig":"MEQCID5i2hXTRnnZq3rkH40xaDRvuuJr9j98Nxa1aZZBO6TbAiBUW+ERusKt8apl309cDPYu92Nw6ib3aq4eegQOc1TqWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13308},"main":"index.js","type":"module","gitHead":"a3783b220219359598c8b65c8bd0e40bb7795148","scripts":{"build":"tsc && node dist/index.js"},"_npmUser":{"name":"swarnshekhar","email":"swarnshekhar21j@gmail.com"},"_npmVersion":"10.9.4","description":"> Give any text-only LLM the power of vision — instantly.","directories":{},"_nodeVersion":"22.21.0","dependencies":{"fs":"^0.0.1-security","zod":"^3.25.76","dotenv":"^17.4.2","@openrouter/sdk":"^0.12.79","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/0eye-vision-mcp_1.0.1_1781207764495_0.4763717687392226","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"0eye-vision-mcp","version":"1.0.3","description":"Give any text-only LLM the power of vision instantly","main":"dist/index.js","type":"module","bin":{"0eye-vision-mcp":"dist/index.js"},"scripts":{"build":"tsc"},"keywords":[],"author":"","license":"ISC","dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","@openrouter/sdk":"^0.12.79","dotenv":"^17.4.2","fs":"^0.0.1-security","zod":"^3.25.76"},"devDependencies":{"@types/node":"^25.9.1","tsx":"^4.22.4","typescript":"^6.0.3"},"_id":"0eye-vision-mcp@1.0.3","gitHead":"3bcf70328d76ddf72ee08c233abff5d9ec3bd342","types":"./dist/index.d.ts","_nodeVersion":"22.21.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-N65y/+oV6f922YpfU+d1vDkXjYIKFqf/SRAH+juOoZw6AWTeEk0hHhsQ28Cqbvh95v0N2BbemKUHT1+XJwYMuA==","shasum":"967a5a1e79c7f0f65c87dc272a4699d931fd263e","tarball":"https://registry.npmjs.org/0eye-vision-mcp/-/0eye-vision-mcp-1.0.3.tgz","fileCount":19,"unpackedSize":13402,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC19aSAboJPFHb608cE08UM3msl8+v04a5EJPp5swQkOAIhAITbg7guMLIAYotHmdoS6d7lI2xuYvstxyy1kDCXVtkx"}]},"_npmUser":{"name":"swarnshekhar","email":"swarnshekhar21j@gmail.com"},"directories":{},"maintainers":[{"name":"swarnshekhar","email":"swarnshekhar21j@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/0eye-vision-mcp_1.0.3_1781211324028_0.31320180834163747"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-11T19:25:15.997Z","modified":"2026-06-11T20:55:24.277Z","1.0.0":"2026-06-11T19:25:16.285Z","1.0.1":"2026-06-11T19:56:04.645Z","1.0.3":"2026-06-11T20:55:24.154Z"},"license":"ISC","keywords":[],"description":"Give any text-only LLM the power of vision instantly","maintainers":[{"name":"swarnshekhar","email":"swarnshekhar21j@gmail.com"}],"readme":"# 0eye-vision-MCP 👁️\n\n> Give any text-only LLM the power of vision — instantly.\n\nMost powerful LLMs are blind. They can reason, write, and code — but show them an image and they're lost. **0eye-vision-MCP** is an MCP server that bridges that gap. Drop an image path, get back a rich natural language description, and feed it into any text model you're building with.\n\n---\n\n## How it works\n\n1. You pass an image file path + a prompt to the tool\n2. The server reads the image and encodes it to base64\n3. It sends the encoding to OpenRouter's vision API (powered by Gemini, GPT-4V, etc.)\n4. OpenRouter returns a detailed description\n5. Your text-only LLM now \"sees\" the image through that description\n\n```\nYour App → MCP Tool → base64 encoder → OpenRouter Vision API → description → Your LLM\n```\n\n---\n\n## Use Cases\n\n**🤖 Augment text-only models**\nRunning GPT-3.5, LLaMA 3, Mistral, Mixtral, Phi-2, DeepSeek, or BLOOM? None of these understand images natively. Use 0eye-vision-MCP to give them eyes.\n\n**🧪 Rapid prototyping**\nTesting a custom LLM pipeline and need vision capability without retraining? Drop this MCP server in and get vision in minutes.\n\n**🖼️ Automated image analysis pipelines**\nPoint it at screenshots, product photos, diagrams, or documents — get structured descriptions you can feed downstream.\n\n**🔍 Accessibility tooling**\nBuild tools that describe images for visually impaired users, powered by any LLM of your choice.\n\n**📊 Document understanding**\nFeed in screenshots of charts, tables, or dashboards and let your LLM reason about the visual data.\n\n---\n\n## Supported text-only models (examples)\n\n- GPT-3.5 Turbo / GPT-3 (Davinci)\n- LLaMA 2 / LLaMA 3 (base)\n- Mistral 7B / Mixtral 8x7B\n- BLOOM, Phi-2, Gemma (text-only)\n- DeepSeek LLM\n\n---\n\n## Prerequisites\n\n- Node.js 18+\n- An [OpenRouter](https://openrouter.ai) API key with access to a vision model\n\n---\n\n## Setup\n\n```bash\ngit clone https://github.com/swarn007-byte/0eye-vision-MCP.git\ncd 0eye-vision-MCP\nnpm install\n```\n\nCreate your `.env` file:\n\n```bash\ncp .env.example .env\n```\n\nEdit `.env`:\n\n```env\nOPENROUTER_API_KEY=sk-or-v1-...\nOPENROUTER_MODEL=google/gemini-2.0-flash-lite:free\n```\n\nBuild:\n\n```bash\nnpm run build\n```\n\n---\n\n## MCP Client Config\n\nAdd this to your MCP host config (Claude Desktop, OpenCode, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"0eye-vision\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/0eye-vision-MCP/dist/index.js\"],\n      \"env\": {\n        \"OPENROUTER_API_KEY\": \"sk-or-v1-...\",\n        \"OPENROUTER_MODEL\": \"google/gemini-2.0-flash-lite:free\"\n      }\n    }\n  }\n}\n```\n\n---\n\n## Tool\n\n### `NoEyeVision`\n\nAnalyze any image using a vision model and get a natural language description.\n\n| Argument | Type | Required | Description |\n|---|---|---|---|\n| `prompt` | string | ✅ | What you want to know about the image |\n| `image_file` | string | ✅ | Absolute path to the image file |\n\n**Example:**\n\n```json\n{\n  \"prompt\": \"describe what is happening in this image in detail\",\n  \"image_file\": \"/Users/you/screenshots/dashboard.png\"\n}\n```\n\n---\n\n## Testing with MCP Inspector\n\n```bash\nnpx @modelcontextprotocol/inspector node dist/index.js\n```\n\nOpen the browser, connect, and run the `NoEyeVision` tool directly.\n\n---\n\n## Project Structure\n\n```\nsrc/\n├── index.ts          # MCP server entry point, tool registration\n├── openRouter.ts     # OpenRouter API client\n└── base64converter.ts # Image file → base64 encoder\n```\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}