Skip to main content
Glama
ceveyne

find-images-mcp-bridge

by ceveyne

find-images-mcp-bridge

Local stdio MCP bridge between LM Studio Bionic and a Find Images.app MCP server. Provides next-level image search and information retrieval based on multimodal embeddings.

The bridge exposes find_image and tag_image tools to Bionic. It forwards search and tag requests to the Find Images MCP server, downloads its previews, writes them to the specified scratchpad, and registers them for later editing or processing.

Prerequisites

  • macOS 26 or later on Apple Silicon.

  • Find Images.app version 0.1.56-1 or later, fully set up and verified to find images.

  • Bionic Version 1.1.4+3 or later.

Related MCP server: LM Studio MCP Bridge

Bionic Configuration

The stdio definition requires these values:

  • command: node

  • args: path to the find-images-mcp-bridge's index.js. Example: /Users/ceveyne/.lmstudio/extensions/plugins/ceveyne/find-images-mcp-bridge/dist/index.js

  • CHAT_WORKING_DIRECTORIES: absolute base directory for all Bionic scratchpads. Example: /Users/ceveyne/.lmstudio/scratchpads

  • FIND_IMAGES_MCP_INDEXER_URL: base URL of the image server. Example: https://127.0.0.1:9760/mcp

  • FIND_IMAGES_MCP_INDEXER_TOKEN: bearer token for the image server. Example: b2f4b1e2-3g0w-4c8t-3b7q-6n2b5b7x1a9d

  • FIND_IMAGES_MCP_INDEXER_CA_CERT: optional path to the image server's self-signed CA/server certificate; standard certificate validation remains active without this value. Example: /Users/ceveyne/.find-images/server/server.crt

{
  "name": "find-images",
  "enabled": true,
  "connection": {
    "type": "stdio",
    "command": "node",
    "args": ["/absolute/path/to/find-images-mcp-bridge/dist/index.js"],
    "cwd": "/absolute/path/to/bionic-scratchpads",
    "env": {
      "CHAT_WORKING_DIRECTORIES": "/absolute/path/to/bionic-scratchpads",
      "FIND_IMAGES_MCP_INDEXER_URL": "https://find-images-server.example.com/mcp",
      "FIND_IMAGES_MCP_INDEXER_TOKEN": "<bearer-token>",
      "FIND_IMAGES_MCP_INDEXER_CA_CERT": "/absolute/path/to/server.crt"
    }
  }
}

Setup step by step

  1. Download and install the Find Images.app. Using the latest available version is highly recommended.

  2. Run the guided Onboarding and verify you're set up according to the Find Images.app README.

  3. Enter Find Images General Settings and add a bearer token to the "MCP Server Bearer Token" field. This is required to get the MCP server started.

  4. cd ~/.lmstudio/extensions/plugins/ceveyne && git clone https://github.com/ceveyne/find-images-mcp-bridge

  5. cd ~/.lmstudio/extensions/plugins/ceveyne/find-images-mcp-bridge && npm install && npm run build

  6. Start Bionic > Settings > MCP > Add custom MCP. Configuration:

  • Name: find-images

  • Connection: On this computer

  • Command: node

  • Enter Advanced settings according to your setup, following the "Bionic Configuration" examples above.

  1. Save your Settings and make sure the Status is Connected • 2 tools ready.

  2. Ask your Bionic agent to find images.

  3. Text your friends about your gorgeous* Find Images setup.

* May or may not be gorgeous – depending on your settings.

Companion plugin

For LM Studio, use the LM Studio plugin: find-image. To generate images, use the LM Studio plugin – made for Bionic: generate-image.

Development

npm install
npm run build
npm test

License

MIT

Available Tools

2 tools
find_imageB

Find visually similar and metadata-related images. Use this tool for cross-modal retrieval over images from several sources across the local network.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch instruction. With target, positively describe additions or changes; without target, write a complete description. Model:, LoRAs:, Tag:, Tags:, Size:, Source:, Origin:, and Timestamp: are hard AND filters.
targetNoReference image: aN, vN, iN, pN, a filename in the scratchpad folder, or an absolute path. Set it for 'like this image', 'same style as a1', or changes to a shown image.
scopeIdNoReserved for the upcoming Search Scope feature; currently has no effect.
excludeImageNoIgnore target pixels. Use only for prompt/metadata similarity, not 'same style' or other image-guided changes.
retrievalLimitNoMaximum number of matching images to return.
includeMetadataNoAdd target generation metadata as a ranking signal across the full corpus, not an identical-metadata filter.
scratchpadFolderYesRequired scratchpad session folder. Obtain this value with get_scratchpad_folder.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden. It mentions the corpus (local network, several sources) but says nothing about permissions, whether retrieval is read-only, latency, or result set behavior. With 7 parameters and no annotations, this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, purpose front-loaded in the first, context in the second, with no filler. It is efficient, though it borders on under-specified for a 7-parameter retrieval tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter cross-modal retrieval tool with no annotations and no output schema, the description omits the query/target relationship, result behavior, and any operational constraints. The rich schema compensates for parameter meaning, but the description leaves key behavioral questions unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented, including the subtle query/target interaction and the filter syntax. The description's 'visually similar and metadata-related' phrasing loosely echoes those semantics but adds no format or syntax detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Find ... images') and qualifies the retrieval modality ('visually similar and metadata-related'), which is more informative than a bare 'search'. It does not name or contrast with its sibling tag_image, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives a usage context ('cross-modal retrieval over images from several sources across the local network'), which implies when the tool is appropriate. However, it names no alternatives and gives no when-not conditions, so usage is only implied rather than specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tag_imageB

Manage persistent tags for indexed images through the configured image server.

Examples:

  • { "action": "add_tag", "target": "p1", "tags": ["favorite"] }

  • { "action": "remove_tag", "target": ["p1", "v2", "/absolute/path/image.png"], "tags": ["favorite", "reviewed"] }

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags to add or remove. Use an array for multiple tags.
actionYeslist_tags lists all indexed tags; show_tag lists current tags; add_tag adds tags; remove_tag removes named tags; remove_all_tags clears every tag from each target.
targetNoOne or more indexed image references: vN, iN, pN, a filename in the scratchpad folder, or an absolute image path. Use an array for multiple targets.
scratchpadFolderYesRequired scratchpad session folder. Obtain this value with get_scratchpad_folder.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and mostly doesn't. It discloses persistence ('persistent tags') and a server dependency, but says nothing about side effects, whether remove_all_tags is destructive, permissions, or reversibility. The action-level semantics live in the schema, not the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence of purpose followed by two compact, front-loaded examples. Nothing is wasted, though the examples lean toward illustration over instruction and could have carried routing guidance instead.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should ideally indicate what list_tags/show_tag return, and it does not. Combined with missing when-to-use guidance and no annotations, this is adequate but leaves gaps an agent would have to resolve by trial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents tags, action, target, and scratchpadFolder in detail. The examples reinforce the anyOf string/array shape for target and tags, which is mildly additive, but the baseline for full schema coverage is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: managing persistent tags for indexed images via the configured image server. It is clearly distinct from the sibling find_image, though it never explicitly says so. A reasonable agent can tell what it does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The two examples show invocation patterns for add_tag and remove_tag, which implies usage, but there is no statement of when to choose a given action or when to prefer this tool over alternatives. The list_tags/show_tag/remove_all_tags actions are never demonstrated or contextualized.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observedfind_image
    • First observedtag_image

TDQS

B3.4/5.0

Scored across 2 tools

Disambiguation5/5

find_image handles retrieval, tag_image handles tag management—two clearly distinct purposes with no overlap. Even though tag_image uses sub-actions, the tool boundary against find_image is unambiguous.

Naming Consistency5/5

Both tools follow a clean verb_noun snake_case pattern (find_image, tag_image). Fully consistent.

Tool Count3/5

Two tools is thin for an image bridge that claims cross-modal retrieval and tag management. It's borderline; the surface earns its place but feels minimal.

Completeness2/5

Only find and tag operations exist. Missing obvious lifecycle operations like indexing new images, listing indexed images, retrieving image metadata/details, or listing/querying existing tags—significant gaps for a retrieval bridge.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    D
    quality
    D
    maintenance
    Enables seamless integration between MCP-compatible clients (like LM Studio) and Google Gemini API for image generation and multimodal tasks. Provides a hybrid local-cloud workflow combining local LM Studio execution with Gemini's cloud-powered image generation capabilities.
    1
    3
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables semantic image search using CLIP embeddings and visual question answering through MCP tools, allowing natural language interaction with images.
    -