diff --git a/plugins/wasm-go/mcp-servers/mcp-bravesearch/README.md b/plugins/wasm-go/mcp-servers/mcp-bravesearch/README.md index 8d21112cb..ee89de09f 100644 --- a/plugins/wasm-go/mcp-servers/mcp-bravesearch/README.md +++ b/plugins/wasm-go/mcp-servers/mcp-bravesearch/README.md @@ -28,7 +28,7 @@ On the user's MCP Client interface, add the generated SSE URL to the MCP Server ```json "mcpServers": { "bravesearch": { - "url": "http://mcp.higress.ai/mcp-brave-search/{generate_key}", + "url": "http://mcp.higress.ai/mcp-bravesearch/{generate_key}", } } ``` diff --git a/plugins/wasm-go/mcp-servers/mcp-bravesearch/README_ZH.md b/plugins/wasm-go/mcp-servers/mcp-bravesearch/README_ZH.md index 7ea4cbe32..5f1ef1e9e 100644 --- a/plugins/wasm-go/mcp-servers/mcp-bravesearch/README_ZH.md +++ b/plugins/wasm-go/mcp-servers/mcp-bravesearch/README_ZH.md @@ -30,7 +30,7 @@ ```json "mcpServers": { "bravesearch": { - "url": "http://mcp.higress.ai/mcp-brave-search/{generate_key}", + "url": "http://mcp.higress.ai/mcp-bravesearch/{generate_key}", } } ``` diff --git a/plugins/wasm-go/mcp-servers/mcp-bravesearch/mcp-server.yaml b/plugins/wasm-go/mcp-servers/mcp-bravesearch/mcp-server.yaml index a72ab8ff2..4886d9adc 100644 --- a/plugins/wasm-go/mcp-servers/mcp-bravesearch/mcp-server.yaml +++ b/plugins/wasm-go/mcp-servers/mcp-bravesearch/mcp-server.yaml @@ -4,9 +4,9 @@ server: apiKey: "" tools: - name: brave_web_search - description: "使用Brave Search API进行网页搜索,适用于一般查询、新闻、文章和在线内容。支持分页、内容过滤和新鲜度控制。每次请求最多返回20条结果。" + description: "使用Brave Search API进行网页搜索,适用于一般查询、新闻、文章和在线内容。支持分页、内容过滤和新鲜度控制。" args: - - name: query + - name: q description: "搜索查询(最多400字符,50个词)" type: string required: true @@ -20,6 +20,11 @@ tools: type: integer required: false default: 0 + - name: search_lang + description: "搜索语言" + type: string + required: false + enum: ["en", "zh-hans"] requestTemplate: url: "https://api.search.brave.com/res/v1/web/search" method: GET @@ -27,8 +32,6 @@ tools: headers: - key: Accept value: "application/json" - - key: Accept-Encoding - value: "gzip" - key: X-Subscription-Token value: "{{.config.apiKey}}" responseTemplate: @@ -39,38 +42,80 @@ tools: - **描述**: {{ $item.description }} - **URL**: {{ $item.url }} {{- end }} + {{- if .locations.results }} + {{- range $index, $item := .locations.results }} + ## 结果 {{add $index 1}} + - **locationID**: {{ $item.id }} + {{- end }} + {{- end }} -- name: brave_local_search - description: "使用Brave的Local Search API搜索本地商家和地点。适用于与物理位置、商家、餐厅、服务等相关的查询。返回详细信息包括商家名称、地址、评分、评论数、电话号码、营业时间等。如果没有本地结果,会自动回退到网页搜索。" +- name: brave_local_search_pois + description: "使用Brave Local Search API搜索本地POI(兴趣点)信息,包括名称、地址、电话、评分等信息。" args: - - name: query - description: "本地搜索查询(例如'Central Park附近的披萨')" - type: string + - name: ids + description: "Location ID列表,通过brave_web_search获取" + type: array required: true - - name: count - description: "结果数量(1-20,默认5)" - type: integer + - name: search_lang + description: "搜索语言" + type: string required: false - default: 5 + default: "en" + - name: search_lang + description: "响应语言" + type: string + required: false + default: "en-US" requestTemplate: - url: "https://api.search.brave.com/res/v1/web/search" + url: "https://api.search.brave.com/res/v1/local/pois" method: GET argsToUrlParam: true headers: - key: Accept value: "application/json" - - key: Accept-Encoding - value: "gzip" - key: X-Subscription-Token value: "{{.config.apiKey}}" responseTemplate: body: | {{- range $index, $item := .results }} - ## 结果 {{add $index 1}} + ## POI {{add $index 1}} - **名称**: {{ $item.name }} - **地址**: {{ $item.address.streetAddress }}, {{ $item.address.addressLocality }}, {{ $item.address.addressRegion }} {{ $item.address.postalCode }} - **电话**: {{ $item.phone }} - - **评分**: {{ $item.rating.ratingValue }} ({{ $item.rating.ratingCount }} 条评论) + - **评分**: {{ $item.rating.ratingValue }} ({{ $item.rating.ratingCount }} 条评价) - **价格范围**: {{ $item.priceRange }} - **营业时间**: {{ join $item.openingHours ", " }} {{- end }} + +- name: brave_local_search_descriptions + description: "使用Brave Local Search API获取本地POI的描述信息。" + args: + - name: ids + description: "Location ID列表,通过brave_web_search获取" + type: array + required: true + - name: search_lang + description: "搜索语言" + type: string + required: false + default: "en" + - name: search_lang + description: "响应语言" + type: string + required: false + default: "en-US" + requestTemplate: + url: "https://api.search.brave.com/res/v1/local/descriptions" + method: GET + argsToUrlParam: true + headers: + - key: Accept + value: "application/json" + - key: X-Subscription-Token + value: "{{.config.apiKey}}" + responseTemplate: + body: | + {{- range $id, $desc := .descriptions }} + ## 描述 {{ $id }} + {{ $desc }} + {{- end }} diff --git a/plugins/wasm-go/mcp-servers/mcp-librechat/README.md b/plugins/wasm-go/mcp-servers/mcp-librechat/README.md new file mode 100644 index 000000000..8963c8dcd --- /dev/null +++ b/plugins/wasm-go/mcp-servers/mcp-librechat/README.md @@ -0,0 +1,58 @@ +# LibreChat MCP Server + +An implementation of the Librechat Code Interpreter MCP server that follows the OpenAPI specification, providing code execution and file management capabilities. + +## Features + +- Supports code execution in multiple programming languages +- Supports file upload, download and deletion +- Provides detailed API response information + +## Usage Guide + +### Get API-KEY +1. Register for a LibreChat account [Visit official website](https://code.librechat.ai) +2. Manage your plan and then generate API Key through developer console. + +### Generate SSE URL + +On the MCP Server interface, log in and enter the API-KEY to generate the URL. + +### Configure MCP Client + +On the user's MCP Client interface, add the generated SSE URL to the MCP Server list. + +```json +"mcpServers": { + "librechat": { + "url": "http://mcp.higress.ai/mcp-librechat/{generate_key}", + } +} +``` + +### Available Tools + +#### delete_file +Delete specified file + +Parameters: +- fileId: File ID (required) +- session_id: Session ID (required) + +#### executeCode +Execute code in specified programming language + +Parameters: +- code: Source code to execute (required) +- lang: Programming language (required, options: c, cpp, d, f90, go, java, js, php, py, rs, ts, r) +- args: Command line arguments (optional) +- entity_id: Assistant/agent identifier (optional) +- files: Array of file references (optional) +- user_id: User identifier (optional) + +#### get_file +Get file information + +Parameters: +- session_id: Session ID (required) +- detail: Detail information (optional) diff --git a/plugins/wasm-go/mcp-servers/mcp-librechat/README_ZH.md b/plugins/wasm-go/mcp-servers/mcp-librechat/README_ZH.md new file mode 100644 index 000000000..0c58380d4 --- /dev/null +++ b/plugins/wasm-go/mcp-servers/mcp-librechat/README_ZH.md @@ -0,0 +1,58 @@ +# LibreChat MCP Server + +一个基于OpenAPI规范的 LibreChat Code Interpreter MCP 服务器,提供代码执行和文件管理功能。 + +## 功能 + +- 支持多种编程语言的代码执行 +- 支持文件上传、下载和删除 +- 提供详细的API响应信息 + +## 使用教程 + +### 获取 API-KEY +1. 注册LibreChat账号 [访问官网](https://code.librechat.ai) +2. 在控制台界面选择付费计划,并创建 API Key + +### 生成 SSE URL + +在 MCP Server 界面,登录后输入 API-KEY,生成URL。 + +### 配置 MCP Client + +在用户的 MCP Client 界面,将生成的 SSE URL添加到 MCP Server列表中。 + +```json +"mcpServers": { + "librechat": { + "url": "http://mcp.higress.ai/mcp-librechat/{generate_key}", + } +} +``` + +### 可用工具 + +#### delete_file +删除指定文件 + +参数: +- fileId: 文件ID (必填) +- session_id: 会话ID (必填) + +#### executeCode +执行指定编程语言的代码 + +参数: +- code: 要执行的源代码 (必填) +- lang: 编程语言 (必填,可选值:c, cpp, d, f90, go, java, js, php, py, rs, ts, r) +- args: 命令行参数 (可选) +- entity_id: 助手/代理标识符 (可选) +- files: 文件引用数组 (可选) +- user_id: 用户标识符 (可选) + +#### get_file +获取文件信息 + +参数: +- session_id: 会话ID (必填) +- detail: 详细信息 (可选) diff --git a/plugins/wasm-go/mcp-servers/mcp-librechat/mcp-server.yaml b/plugins/wasm-go/mcp-servers/mcp-librechat/mcp-server.yaml new file mode 100644 index 000000000..710318701 --- /dev/null +++ b/plugins/wasm-go/mcp-servers/mcp-librechat/mcp-server.yaml @@ -0,0 +1,145 @@ +server: + name: librechat-api-server + config: + apiKey: "" +tools: + - name: delete_file + description: Delete a file + args: + - name: fileId + description: "" + type: string + required: true + position: path + - name: session_id + description: "" + type: string + required: true + position: path + requestTemplate: + url: https://api.librechat.ai/v1/files/{session_id}/{fileId} + method: DELETE + headers: + - key: x-api-key + value: "{{ .config.apiKey }}" + responseTemplate: {} + - name: executeCode + description: Execute code - Execute code with specified language and parameters + args: + - name: args + description: Optional command line arguments to pass to the program + type: string + position: body + - name: code + description: The source code to be executed + type: string + required: true + position: body + - name: entity_id + description: Optional assistant/agent identifier for file sharing and reference. Must be a valid nanoid-compatible string. + type: string + position: body + - name: files + description: Array of file references to be used during execution + type: array + items: + type: object + position: body + - name: lang + description: The programming language of the code + type: string + required: true + enum: ["c","cpp","d","f90","go","java","js","php","py","rs","ts","r"] + position: body + - name: user_id + description: Optional user identifier + type: string + position: body + requestTemplate: + url: https://api.librechat.ai/v1/exec + method: POST + headers: + - key: Content-Type + value: application/json + - key: x-api-key + value: "{{ .config.apiKey }}" + responseTemplate: + prependBody: |+ + # API Response Information + + Below is the response from an API call. To help you understand the data, I've provided: + + 1. A detailed description of all fields in the response structure + 2. The complete API response + + ## Response Structure + + > Content-Type: application/json + + - **files**: (Type: array) + - **files[].id**: (Type: string) + - **files[].name**: (Type: string) + - **files[].path**: (Type: string) + - **language**: (Type: string) + - **run**: (Type: object) + - **run.code**: (Type: integer) + - **run.cpu_time**: (Type: number) + - **run.memory**: (Type: integer) + - **run.message**: (Type: string) + - **run.output**: (Type: string) + - **run.signal**: (Type: string) + - **run.status**: (Type: string) + - **run.stderr**: (Type: string) + - **run.stdout**: (Type: string) + - **run.wall_time**: (Type: number) + - **session_id**: (Type: string) + - **version**: (Type: string) + + ## Original Response + + - name: get_file + description: Get files information + args: + - name: detail + description: "" + type: string + position: query + - name: session_id + description: "" + type: string + required: true + position: path + requestTemplate: + url: https://api.librechat.ai/v1/files/{session_id} + method: GET + headers: + - key: x-api-key + value: "{{ .config.apiKey }}" + responseTemplate: + prependBody: |+ + # API Response Information + + Below is the response from an API call. To help you understand the data, I've provided: + + 1. A detailed description of all fields in the response structure + 2. The complete API response + + ## Response Structure + + > Content-Type: application/json + + - **items**: Array of items (Type: array) + - **items.content**: (Type: string) + - **items.contentType**: (Type: string) + - **items.etag**: (Type: string) + - **items.id**: (Type: string) + - **items.lastModified**: (Type: string) + - **items.metadata**: (Type: object) + - **items.metadata.content-type**: (Type: string) + - **items.metadata.original-filename**: (Type: string) + - **items.name**: (Type: string) + - **items.session_id**: (Type: string) + - **items.size**: (Type: number) + + ## Original Response + diff --git a/plugins/wasm-go/mcp-servers/mcp-wolframalpha/README.md b/plugins/wasm-go/mcp-servers/mcp-wolframalpha/README.md new file mode 100644 index 000000000..daf34a3dc --- /dev/null +++ b/plugins/wasm-go/mcp-servers/mcp-wolframalpha/README.md @@ -0,0 +1,32 @@ +# WolframAlpha MCP Server + +An implementation of the Model Context Protocol (MCP) server that integrates [WolframAlpha](https://www.wolframalpha.com/), providing natural language computation and knowledge query capabilities. + +## Features + +- Supports natural language queries in mathematics, physics, chemistry, geography, history, art, astronomy, and more +- Performs mathematical calculations, date and unit conversions, formula solving, etc. +- Supports image result display +- Automatically converts complex queries into simplified keyword queries +- Supports multilingual queries (automatically translates to English for processing, returns results in original language) + +## Usage Guide + +### Get AppID +1. Register for a WolframAlpha developer account [Create a Wolfram ID](https://account.wolfram.com/login/create) +2. Generate LLM-API AppID [Get An App ID](https://developer.wolframalpha.com/access) + +### Generate SSE URL + +On the MCP Server interface, log in and enter the AppID to generate the URL. + +### Configure MCP Client + +On the user's MCP Client interface, add the generated SSE URL to the MCP Server list. + +```json +"mcpServers": { + "wolframalpha": { + "url": "http://mcp.higress.ai/mcp-wolframalpha/{generate_key}", + } +} diff --git a/plugins/wasm-go/mcp-servers/mcp-wolframalpha/README_ZH.md b/plugins/wasm-go/mcp-servers/mcp-wolframalpha/README_ZH.md new file mode 100644 index 000000000..42c7e74f1 --- /dev/null +++ b/plugins/wasm-go/mcp-servers/mcp-wolframalpha/README_ZH.md @@ -0,0 +1,32 @@ +# WolframAlpha MCP Server + +一个集成了[WolframAlpha](https://www.wolframalpha.com/)的模型上下文协议(MCP)服务器实现,提供自然语言计算和知识查询功能。 + +## 功能 + +- 支持自然语言查询,涵盖数学、物理、化学、地理、历史、艺术、天文等领域 +- 执行数学计算、日期和单位转换、公式求解等 +- 支持图像结果展示 +- 自动将复杂查询转换为简化关键词查询 +- 支持多语言查询(自动翻译为英文处理,返回原语言结果) + +## 使用教程 + +### 获取 AppID +1. 注册 WolframAlpha 开发者账号 [Create a Wolfram ID](https://account.wolfram.com/login/create) +2. 生成LLM-API 的 App ID [Get An App ID](https://developer.wolframalpha.com/access) + +### 生成 SSE URL + +在 MCP Server 界面,登录后输入 AppID,生成URL。 + +### 配置 MCP Client + +在用户的 MCP Client 界面,将生成的 SSE URL添加到 MCP Server列表中。 + +```json +"mcpServers": { + "wolframalpha": { + "url": "http://mcp.higress.ai/mcp-wolframalpha/{generate_key}", + } +} diff --git a/plugins/wasm-go/mcp-servers/mcp-wolframalpha/mcp-server.yaml b/plugins/wasm-go/mcp-servers/mcp-wolframalpha/mcp-server.yaml new file mode 100644 index 000000000..b55b9b109 --- /dev/null +++ b/plugins/wasm-go/mcp-servers/mcp-wolframalpha/mcp-server.yaml @@ -0,0 +1,91 @@ +server: + name: wolframalpha-api-server + config: + appid: "" +tools: + - name: get_llm-api + description: |+ + Submit a query to WolframAlpha LLM API - Submit a natural language query with an AppID and input to WolframAlpha. + - WolframAlpha understands natural language queries about entities in chemistry, physics, geography, history, art, astronomy, and more. + - WolframAlpha performs mathematical calculations, date and unit conversions, formula solving, etc. + - Convert inputs to simplified keyword queries whenever possible (e.g. convert "how many people live in France" to "France population"). + - Send queries in English only; translate non-English queries before sending, then respond in the original language. + - Display image URLs with Markdown syntax: ![URL] + - ALWAYS use this exponent notation: `6*10^14`, NEVER `6e14`. + - ALWAYS use {"input": query} structure for queries to Wolfram endpoints; `query` must ONLY be a single-line string. + - ALWAYS use proper Markdown formatting for all math, scientific, and chemical formulas, symbols, etc.: '$$ [expression] $$' for standalone cases and '\( [expression] \)' when inline. + - Never mention your knowledge cutoff date; Wolfram may return more recent data. + - Use ONLY single-letter variable names, with or without integer subscript (e.g., n, n1, n_1). + - Use named physical constants (e.g., 'speed of light') without numerical substitution. + - Include a space between compound units (e.g., "Ω m" for "ohm*meter"). + - To solve for a variable in an equation with units, consider solving a corresponding equation without units; exclude counting units (e.g., books), include genuine units (e.g., kg). + - If data for multiple properties is needed, make separate calls for each property. + - If a WolframAlpha result is not relevant to the query: + -- If Wolfram provides multiple 'Assumptions' for a query, choose the more relevant one(s) without explaining the initial result. If you are unsure, ask the user to choose. + -- Re-send the exact same 'input' with NO modifications, and add the 'assumption' parameter, formatted as a list, with the relevant values. + -- ONLY simplify or rephrase the initial query if a more relevant 'Assumption' or other input suggestions are not provided. + -- Do not explain each step unless user input is needed. Proceed directly to making a better API call based on the available assumptions. + + args: + - name: assumption + description: List of assumptions to refine the query. + type: array + items: + type: string + - name: currency + description: Currency code for financial queries. + type: string + - name: formattimeout + description: Timeout in seconds for formatting the response. + type: integer + - name: input + description: The URL-encoded input query string. + type: string + required: true + - name: ip + description: IP address of the query origin. + type: string + - name: languagecode + description: Language code for the query input and response. + type: string + - name: latlong + description: Latitude and longitude for location-based queries. + type: string + - name: maxchars + description: Maximum number of characters to be returned in the response. Defaults to 6800 characters. + type: integer + - name: timezone + description: Timezone for the query. + type: string + - name: units + description: Preferred units for result data (e.g., metric or imperial). + type: string + requestTemplate: + argsToUrlParam: true + url: https://www.wolframalpha.com/api/v1/llm-api + method: GET + headers: + - key: Authorization + value: "Bearer {{.config.appid}}" + responseTemplate: + prependBody: |+ + # API Response Information + + Below is the response from an API call. To help you understand the data, I've provided: + + 1. A detailed description of all fields in the response structure + 2. The complete API response + + ## Response Structure + + > Content-Type: application/json + + - **images**: List of image URLs related to the query. (Type: array) + - **images[]**: Items of type string + - **inputInterpretation**: WolframAlpha's interpretation of the input query. (Type: string) + - **link**: A link back to the full WolframAlpha results page for this query. (Type: string) + - **query**: The query that was submitted. (Type: string) + - **result**: The computed result for the query. (Type: string) + + ## Original Response +