Northwestern AI image MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENROUTER_IMAGE_COHORT | No | Set to 2027 or 2028 to select the cohort. Missing, empty, unknown or conflicting selection fails before sign-in. | |
| OPENROUTER_IMAGE_WORKSPACE_ID | No | Alternatively select either workspace ID. If set along with OPENROUTER_IMAGE_COHORT, it must match. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| account_statusA | Show whether this computer is signed in to OpenRouter, with the key's spending. Reports the key label, usage today / this week / this month / in total, and the
key's spending limit and remaining credit. If a sign-in is in progress, shows its
status and link. Use it after |
| auth_loginA | Sign in to OpenRouter in the user's browser. Opens the OpenRouter sign-in page and returns at once with a link. Show the link to
the user in case the browser didn't open (it contains no secret). The user finishes
in the browser; then call Args: switch_account: true to sign in as a different account or workspace. The current key is kept until the new one is stored. |
| auth_logoutA | Sign out: delete the stored OpenRouter key from this computer. The key stays valid on OpenRouter until it is deleted on the keys dashboard; the result links that page. Takes no parameters. |
| list_image_modelsA | List the image models available on OpenRouter right now, as a markdown table. Use this before Args:
query: Case-insensitive text to find in the model id or name.
accepts_images: true for models that take input images (needed by
|
| get_image_modelA | Show full details for one image model. Returns the description, the capabilities, and one section per provider endpoint
with its supported parameters and allowed values, the passthrough parameters usable
in Args:
model_id: Exact model id from |
| generate_imageA | Generate new images from a text prompt with an OpenRouter image model. Call Each call costs money on the user's OpenRouter account; the result reports the cost. Prompts go to a third-party model provider through OpenRouter: get the user's OK before sending client or project images or details to third-party providers. Images are saved (never overwriting) to the configured output folder with a JSON sidecar of the settings used. The result lists the saved paths, any notes and failures, the model, provider, time and cost, plus JPEG previews. Args:
prompt: What to create.
model: Model id from |
| edit_imageA | Edit an image (or create one from reference images) with an OpenRouter image model. Call The input images are uploaded to a third-party model provider through OpenRouter: get the user's OK before sending client or project images to third-party providers. Each call costs money on the user's OpenRouter account; the result reports the cost. All paths must be absolute (or start with "~"); relative paths are rejected. Results are saved next to the first input image (never overwriting it) with a JSON sidecar, unless output_dir is given. The result lists the saved paths, notes, failures, model, provider, time and cost, plus JPEG previews. Args:
prompt: The change to make, e.g. "make it dusk with warm window light".
model: Model id from |
| remask_imageA | Redo the mask blend of a masked Use it when a masked edit came back with a good change that blends badly, such as
a seam or a ghosted edge where the model drew past the mask (a limb or shadow cut
off at the mask edge), or when the mask should have been bigger or smaller. Draw a
new mask and call this instead of paying for another It needs a result made by All paths must be absolute (or start with "~"); relative paths are rejected. The
new image is saved as a PNG next to Args:
image: Absolute path of a masked |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Northwestern image preview |
TDQS
Scored across 8 tools
Each tool targets a distinct action or resource: authentication (auth_login, auth_logout, account_status), model discovery (list_image_models, get_image_model), and image operations (generate_image, edit_image, remask_image). The only pair with potential overlap is list_image_models vs get_image_model, but they are clearly differentiated as list vs detail. No tool boundaries are confusing.
All tool names follow a consistent verb_noun pattern: auth_login, list_image_models, get_image_model, generate_image, auth_logout, account_status, edit_image, remask_image. The prefix 'auth_' and 'image' nouns are used predictably.
Eight tools are well-scoped for an image generation and editing server with authentication. Each tool has a clear purpose and no redundancy; the set covers the full workflow from sign-in to model discovery to image generation, editing, and local re-masking.
The surface covers the complete lifecycle: authentication (login, logout, status), model discovery (list, get), image generation, editing with masking, and free local re-masking. It even anticipates advanced use cases like mask adjustments without extra cost. No obvious gaps for the stated domain.