mcp: invalid server url #19942

Closed
opened 2026-02-21 20:05:03 -05:00 by yindo · 1 comment
Owner

Originally created by @xiaozhubenben on GitHub (Oct 27, 2025).

Originally assigned to: @Nov1c444 on GitHub.

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.9.1

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

when add a mcp tools: http://apiserver:5234/sse , dify throw exception : invalid server url . but apiserver is a machine name inside my cluster registered in dns. so the front-end code: web/app/components/tools/mcp/modal.tsx function isValidUrl is wrong

✔️ Expected Behavior

modify to const urlPattern = /^(https?://)(((a-z\d).)a-z\d|localhost|((\d{1,3}.){3}\d{1,3}))(:\d+)?(/[-a-z\d%_.~+])(?[;&a-z\d%_.~+=-])?/i

Actual Behavior

Error toast showed : invalid server url

Originally created by @xiaozhubenben on GitHub (Oct 27, 2025). Originally assigned to: @Nov1c444 on GitHub. ### Self Checks - [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542). - [x] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [x] I confirm that I am using English to submit this report, otherwise it will be closed. - [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version 1.9.1 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce when add a mcp tools: http://apiserver:5234/sse , dify throw exception : invalid server url . but apiserver is a machine name inside my cluster registered in dns. so the front-end code: web/app/components/tools/mcp/modal.tsx function isValidUrl is wrong ### ✔️ Expected Behavior modify to const urlPattern = /^(https?:\/\/)((([a-z\d]([a-z\d-]*[a-z\d])*)\.)*[a-z\d]([a-z\d-]*[a-z\d])*|localhost|((\d{1,3}\.){3}\d{1,3}))(:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=-]*)?/i ### ❌ Actual Behavior Error toast showed : invalid server url
yindo added the 🐞 bug label 2026-02-21 20:05:03 -05:00
yindo closed this issue 2026-02-21 20:05:03 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Oct 27, 2025):

Hi @xiaozhubenben! I'm Dosu and I’m helping the dify team.

The "invalid server url" error happens because the current regex in isValidUrl only accepts hostnames with a dot and a TLD, IP addresses, or "localhost", so internal DNS names like apiserver are rejected—even though they're valid in cluster environments. You can safely update the regex in web/app/components/tools/mcp/modal.tsx to a more permissive pattern that allows single-level hostnames, internal DNS, localhost, and IPs, as you suggested. This change will resolve the bug for MCP tool URLs like http://apiserver:5234/sse and similar cases in Docker or cluster setups. For reference, this issue is confirmed to persist in newer versions and is discussed in detail here.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

@dosubot[bot] commented on GitHub (Oct 27, 2025): <!-- Greeting --> Hi @xiaozhubenben! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the dify team. <!-- Answer --> The "invalid server url" error happens because the current regex in `isValidUrl` only accepts hostnames with a dot and a TLD, IP addresses, or "localhost", so internal DNS names like `apiserver` are rejected—even though they're valid in cluster environments. You can safely update the regex in `web/app/components/tools/mcp/modal.tsx` to a more permissive pattern that allows single-level hostnames, internal DNS, localhost, and IPs, as you suggested. This change will resolve the bug for MCP tool URLs like `http://apiserver:5234/sse` and similar cases in Docker or cluster setups. For reference, this issue is confirmed to persist in newer versions and is discussed in detail [here](https://github.com/langgenius/dify/issues/26072). <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/34034468-8558-4e3b-a220-edc449666802?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/34034468-8558-4e3b-a220-edc449666802?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/34034468-8558-4e3b-a220-edc449666802?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/34034468-8558-4e3b-a220-edc449666802?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/34034468-8558-4e3b-a220-edc449666802?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/34034468-8558-4e3b-a220-edc449666802?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/34034468-8558-4e3b-a220-edc449666802?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github)&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify/issues/27485)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#19942