图像生成与编辑服务

基于MCP协议的Grok图像生成与编辑服务,支持通过文本提示生成和编辑图像,并提供本地文件支持、图片代理和网络代理功能。

  • by fl0w1nd
  • TypeScript
  • 本地部署
  • 30 星标
  • 更新于
在 GitHub 查看 fl0w1nd/grok2-image-mcp-server

使用说明

Grok Image MCP

英语 | 中文


MCP(模型上下文协议)服务器,用于使用 格罗克 xAI的图像模型。

备注:此软件包以前发布为 grok2-image-mcp-server。该软件包现已弃用——请使用 grok-image-mcp 相反。

特性

  • 图像生成 --根据具有可配置纵横比、分辨率和批量计数的文本提示生成图像
  • 图像编辑 --使用自然语言指令编辑现有图像,支持1-3个源图像
  • 本地文件支持 --提供用于编辑的本地图像路径;服务器自动读取并编码它们
  • 图像代理 --的可选代理域 imgen.x.ai 处理网络限制
  • HTTP代理 -API请求的可选网络代理

安装

使用npx(推荐)

{
  "mcpServers": {
    "grok_image": {
      "command": "npx",
      "args": ["grok-image-mcp"],
      "env": {
        "XAIAPI_KEY": "your-xai-api-key"
      }
    }
  }
}

工具

generate_image

根据文本提示生成图像。

参数 类型 必填 说明
prompt string ✅ 要生成的图像的文本描述
n number 图像数量(1-10,默认值1)
aspect_ratio string 纵横比(1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 2:1, 1:2, auto等等)
resolution string 分辨率(1k 或 2k,默认值1k)

edit_image

使用文本提示编辑现有图像。

参数 类型 必填 说明
prompt string ✅ 所需编辑的文本描述
image_urls string[] ✅ 1–3个源图像:URL、base64数据URI或本地文件路径
n number 输出图像数(1-10,默认值1)
aspect_ratio string 覆盖输出纵横比(默认值:跟随第一个输入图像)
resolution string 分辨率(1k 或 2k,默认值1k)

环境变量

变量 必填 描述
XAIAPI_KEY ✅ xAI API密钥
XAIAPI_BASE_URL API基本URL(默认值: https://api.x.ai/v1).如果API无法访问,请使用代理
IMAGE_PROXY_DOMAIN 要替换的代理域 imgen.x.ai 在返回的图像URL中
HTTP_PROXY API请求的HTTP/HTTPS代理(例如。 http://127.0.0.1:7890)

代理示例

API代理:

XAIAPI_BASE_URL=https://api-proxy.me/xai/v1

图像代理:

IMAGE_PROXY_DOMAIN=https://image.proxy.workers.dev

网络代理:

HTTP_PROXY=http://127.0.0.1:7890

使用Cloudflare Workers代理映像URL

如果图像URL来自 imgen.x.ai 无法访问,部署Cloudflare Worker作为反向代理并设置 IMAGE_PROXY_DOMAIN 转到您的自定义域:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

const TARGET_DOMAIN = 'imgen.x.ai'

async function handleRequest(request) {
  const url = new URL(request.url)
  const targetUrl = `https://${TARGET_DOMAIN}${url.pathname}${url.search}`

  const init = {
    method: request.method,
    headers: request.headers,
    body: request.method === 'GET' || request.method === 'HEAD' ? undefined : request.body,
    redirect: 'follow'
  }

  const response = await fetch(targetUrl, init)

  const newHeaders = new Headers(response.headers)
  newHeaders.set('Access-Control-Allow-Origin', '*')

  return new Response(response.body, {
    status: response.status,
    statusText: response.statusText,
    headers: newHeaders
  })
}

许可证

麻省理工学院


基于 主控程序 协议的 格罗克 图像生成与编辑服务。

注意: 此包的前身是 grok2-image-mcp-server,该包已弃用,请使用 grok-image-mcp。

功能

  • 图像生成 — 通过文本提示生成图像,可配置宽高比、分辨率和批量数量
  • 图像编辑 — 使用自然语言编辑现有图像,支持 1–3 张源图
  • 本地文件支持 — 可提供本地图片路径进行编辑,服务端自动读取并编码
  • 图片代理 — 可选代理域名替换 imgen.x.ai,解决网络访问问题
  • 网络代理 — 支持 HTTP/HTTPS 代理

安装

使用 npx(推荐)

{
  "mcpServers": {
    "grok_image": {
      "command": "npx",
      "args": ["grok-image-mcp"],
      "env": {
        "XAIAPI_KEY": "你的 xAI API 密钥"
      }
    }
  }
}

工具

generate_image

通过文本提示生成图像。

参数 类型 必填 说明
prompt string ✅ 描述要生成的图像内容
n number 生成数量(1–10,默认 1)
aspect_ratio string 宽高比(1:1、16:9、9:16、4:3、3:4、3:2、2:3、2:1、1:2、auto 等)
resolution string 分辨率(1k 或 2k,默认 1k)

edit_image

使用文本提示编辑现有图像。

参数 类型 必填 说明
prompt string ✅ 描述所需的编辑内容
image_urls string[] ✅ 1–3 张源图:URL、base64 data URI 或本地文件路径
n number 输出图像数量(1–10,默认 1)
aspect_ratio string 覆盖输出宽高比(默认跟随第一张输入图)
resolution string 分辨率(1k 或 2k,默认 1k)

环境变量

变量 必填 说明
XAIAPI_KEY ✅ xAI API 密钥
XAIAPI_BASE_URL API 基础地址(默认 https://api.x.ai/v1),可填写代理地址
IMAGE_PROXY_DOMAIN 图片代理域名,替换返回 URL 中的 imgen.x.ai
HTTP_PROXY HTTP/HTTPS 网络代理地址(如 http://127.0.0.1:7890)

代理示例

API 代理:

XAIAPI_BASE_URL=https://api-proxy.me/xai/v1

图片代理:

IMAGE_PROXY_DOMAIN=https://image.proxy.workers.dev

网络代理:

HTTP_PROXY=http://127.0.0.1:7890

使用 Cloudflare Workers 代理图片 URL

如果 imgen.x.ai 的图片无法访问,可部署 Cloudflare Worker 反向代理,然后将 IMAGE_PROXY_DOMAIN 设为你的自定义域名:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

const TARGET_DOMAIN = 'imgen.x.ai'

async function handleRequest(request) {
  const url = new URL(request.url)
  const targetUrl = `https://${TARGET_DOMAIN}${url.pathname}${url.search}`

  const init = {
    method: request.method,
    headers: request.headers,
    body: request.method === 'GET' || request.method === 'HEAD' ? undefined : request.body,
    redirect: 'follow'
  }

  const response = await fetch(targetUrl, init)

  const newHeaders = new Headers(response.headers)
  newHeaders.set('Access-Control-Allow-Origin', '*')

  return new Response(response.body, {
    status: response.status,
    statusText: response.statusText,
    headers: newHeaders
  })
}

许可证

麻省理工学院