Browser

io.github.cherchyk由 GitHub 帳號 cherchyk 發布v0.2.1更新於 Oct 24, 2026

MCP server for loading authenticated web pages using Chrome DevTools Protocol

概覽

AI 產生的概覽

一個本機 MCP 伺服器,驅動你自己的 Chrome、Edge 或 Brave 瀏覽器,讓助理載入、登入、操作網頁並擷取內容。

可以做什麼
在你真實的瀏覽器工作階段中載入頁面,包括需要登入、SSO、驗證碼防護與大量 JavaScript 渲染的網站,預設回傳精簡後的 HTML,並可設定額外等待時間。依 CSS 選擇器或可見文字點擊元素,一次呼叫填入一個或多個表單欄位。在已載入頁面中執行 JavaScript,用於擷取結構化資料或觸發介面操作。無需重新載入即可重新讀取目前 DOM,依方向、元素或座標捲動,並擷取視窗或整頁截圖。關閉某網域的標籤頁以清除工作階段狀態或釋放記憶體。
適用情境
適合助理需要存取登入後、企業 SSO、反爬蟲保護或高度依賴前端渲染的頁面,這些是單純 HTTP 抓取無法觸及的。也適合填表與點擊流程,重用現有瀏覽器工作階段可免去重複登入。
執行需求
以 stdio 在本機執行,通常透過 npx 啟動,因此需要 Node.js 18 或更新版本。需要安裝 Chrome、Edge 或 Brave。選用環境變數 CHROME_PATH、CHROME_USER_DATA_DIR 與 CHROME_REMOTE_DEBUG_PORT 可指定瀏覽器路徑、設定檔目錄與 DevTools 連接埠。未宣告需要 API 金鑰或帳號。
安裝前請注意
README 提醒存在 MCP 的「致命三要素」:存取私有資料、接觸不可信頁面內容以及對外通訊,因為擷取的頁面內容會傳送給你的 LLM 供應商。僅在你信任的網站與供應商上使用。工具可以點擊、填寫表單、在頁面環境執行任意 JavaScript,並透過關閉標籤頁清除工作階段狀態,因此操作可能送出資料或改變帳號。輸入表單的憑證會經過助理。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Browser,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

✅ MCPBrowser (MCP Browser)

[VS Code Marketplace] [Open VSX] [npm version] [Claude Desktop] [License: MIT]

⚠️ Security Notice: MCPBrowser extracts webpage content and provides it to your AI agent (e.g., GitHub Copilot, Claude, Kiro, Antigravity), which then sends it to the LLM provider it uses (e.g., Anthropic, OpenAI, GitHub) for processing. Make sure you trust both your agent and the LLM provider — especially when accessing pages with sensitive or private data. MCPBrowser combines private data access, untrusted content exposure, and external communication (the MCP "lethal trifecta") — all tool annotations accurately declare these risks so MCP clients can enforce appropriate safety controls. See MCPBrowser/docs/MCP_COMPLIANCE.md for details.

💡 Why MCPBrowser over Puppeteer/Playwright MCP servers? Puppeteer and Playwright are browser automation libraries — their MCP servers give agents raw, low-level browser commands. MCPBrowser uses Puppeteer under the hood and was built specifically for AI agents, adding an intelligence layer that handles the hard parts automatically.

The agent gets clean HTML (90% smaller), automatic SPA detection (React, Vue, Angular), authentication flow handling (SSO, redirects, multi-step login), form discovery with multi-field filling, structured responses with next-step guidance, domain-based tab reuse, and instant DOM re-extraction without page reloads. Each MCPBrowser tool call replaces 5-8 raw browser automation calls — a typical 4-step workflow in MCPBrowser would take 20+ calls with Puppeteer/Playwright MCP, saving tokens and making the agent significantly faster. See full comparison below.

MCPBrowser is an MCP browser server that gives AI assistants the ability to browse web pages using a real Chrome, Edge, or Brave browser. This browser-based MCP server lets AI assistants (Claude, Copilot, Kiro, Antigravity) access any website — especially those protected by authentication, CAPTCHAs, anti-bot restrictions, or requiring JavaScript rendering. Uses your real browser session for web automation, so you log in once, and your AI can navigate, click buttons, fill forms, and extract content from sites that block automated requests.

Built on the Model Context Protocol (MCP), this web browser MCP server works seamlessly with Claude Desktop, Claude Code (CLI), GitHub Copilot, Kiro, Antigravity, and any MCP-compatible AI assistant. It handles corporate SSO, CAPTCHAs, Cloudflare protection, SPAs, dashboards, and any site that blocks automated requests. Your AI gets the same browser access you have — no special APIs, no headless browser detection, just your authenticated browser session.

Example workflow for AI assistant to use MCPBrowser

1. browser_fetch_webpage    → Load the login page2. browser_type_text        → Enter username & password (multiple fields at once)3. browser_click_element    → Click "Sign In"4. browser_get_current_html → Extract the content after login

Contents

Requirements

  • Chrome, Edge, or Brave browser
  • Node.js 18+ (includes npm)

Note: Node.js must be installed on your system. The VS Code extension and npm package both require Node.js to run the MCP server. Download from nodejs.org if not already installed.

Why MCPBrowser over Puppeteer/Playwright MCP servers?

Puppeteer and Playwright are browser automation libraries — their MCP servers expose low-level browser commands and the agent has to handle SPAs, auth flows, messy HTML, and edge cases on its own. MCPBrowser was built specifically for AI agents. It uses Puppeteer under the hood and adds an intelligence layer so the agent can focus on the task instead of fighting the browser.

MCPBrowserPuppeteer/Playwright MCP
HTML outputClean, LLM-optimized (~90% smaller) — strips scripts, styles, SVGs, tracking attrs, converts relative URLsRaw DOM
SPA supportAuto-detects React, Vue, Angular, Svelte, Next.js, Nuxt — applies framework-aware wait strategiesAgent must configure waits manually
AuthenticationDetects login pages, SSO redirects, multi-step auth — follows redirect chains, two-phase timeouts (5s SSO → 20min manual)Agent must script each auth step
Form interactionbrowser_detect_forms discovers all fields, labels, constraints; browser_type_text fills multiple fields at onceOne field at a time, manual selectors
Response formatTyped, structured with nextSteps guidance — soft vs hard failure distinction with recovery actionsRaw results, generic errors
Tab managementDomain-pooled — reuses tabs, survives browser reconnectionNew context per request
DOM re-extractionbrowser_get_current_html — instant, no reload (10-50x faster)Must re-fetch full page
Plugin systemDetects known sites by URL/DOM patterns, offers site-specific actions with confidence scoringN/A
Built forAI agentsBrowser test automation
Agent efficiency1 tool call replaces 5-8 raw browser calls — a 4-step login flow takes 4 calls instead of 20+, saving tokens and round-tripsEach step (navigate, wait, query, type, click) is a separate call

Installation

Getting started

First, install MCPBrowser with your MCP client.

Standard config works in most tools:

json
{  "mcpServers": {    "mcpbrowser": {      "command": "npx",      "args": ["-y", "mcpbrowser@latest"]    }  }}

[Install in VS Code] [Install in VS Code Insiders]


Amp

Add via the Amp VS Code extension settings screen or by updating your settings.json file:

json
"amp.mcpServers": {  "mcpbrowser": {    "command": "npx",    "args": ["-y", "mcpbrowser@latest"]  }}

Amp CLI Setup:

bash
amp mcp add mcpbrowser -- npx -y mcpbrowser@latest

Claude Code

Use the Claude Code CLI to add the MCPBrowser MCP server:

bash
claude mcp add mcpbrowser --scope user -- npx -y mcpbrowser@latest

Verify it's working:

bash
claude mcp list

You should see:

mcpbrowser: npx -y mcpbrowser@latest - ✓ Connected

Claude Desktop

Add to your config file (create it if it doesn't exist):

Windows: %APPDATA%\Claude\claude_desktop_config.json (e.g., C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json)
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

json
{  "mcpServers": {    "mcpbrowser": {      "command": "npx",      "args": ["-y", "mcpbrowser@latest"]    }  }}

Restart Claude Desktop after saving.


Cline

Follow the instruction in the section Configuring MCP Servers.

Add the following to your cline_mcp_settings.json file:

json
{  "mcpServers": {    "mcpbrowser": {      "type": "stdio",      "command": "npx",      "timeout": 30,      "args": ["-y", "mcpbrowser@latest"],      "disabled": false    }  }}

Codex

Use the Codex CLI to add the MCPBrowser MCP server:

bash
codex mcp add mcpbrowser npx "-y" "mcpbrowser@latest"

Alternatively, create or edit the configuration file ~/.codex/config.toml and add:

toml
[mcp_servers.mcpbrowser]command = "npx"args = ["-y", "mcpbrowser@latest"]

For more information, see the Codex MCP documentation.


Copilot CLI

Use the Copilot CLI to interactively add the MCPBrowser MCP server:

bash
/mcp add

When prompted, enter the following values:

FieldValue
Server Namemcpbrowser
Server Type1 (Local)
Commandnpx -y mcpbrowser@latest
Environment Variables(leave empty)
Tools*

Alternatively, create or edit the configuration file ~/.copilot/mcp-config.json and add:

json
{  "mcpServers": {    "mcpbrowser": {      "type": "local",      "command": "npx",      "tools": ["*"],      "args": ["-y", "mcpbrowser@latest"]    }  }}

For more information, see the Copilot CLI documentation.


Cursor

[Install in Cursor]

Or install manually:

Go to Cursor Settings -> MCP -> Add new MCP Server. Name to your liking, use command type with the command npx -y mcpbrowser@latest. You can also verify config or add command like arguments via clicking Edit.


Factory

Use the Factory CLI to add the MCPBrowser MCP server:

bash
droid mcp add mcpbrowser "npx -y mcpbrowser@latest"

Alternatively, type /mcp within Factory droid to open an interactive UI for managing MCP servers.

For more information, see the Factory MCP documentation.


Gemini CLI

Follow the MCP install guide, use the standard config above.


Goose

[Install in Goose]

Or install manually:

Go to Advanced settings -> Extensions -> Add custom extension. Name to your liking, use type STDIO, and set the command to npx -y mcpbrowser@latest. Click "Add Extension".


Kiro

Follow the MCP Servers documentation. For example in .kiro/settings/mcp.json:

json
{  "mcpServers": {    "mcpbrowser": {      "command": "npx",      "args": ["-y", "mcpbrowser@latest"]    }  }}

LM Studio

[Add MCP Server mcpbrowser to LM Studio]

Or install manually:

Go to Program in the right sidebar -> Install -> Edit mcp.json. Use the standard config above.


opencode

Follow the MCP Servers documentation. For example in ~/.config/opencode/opencode.json:

json
{  "$schema": "https://opencode.ai/config.json",  "mcp": {    "mcpbrowser": {      "type": "local",      "command": ["npx", "-y", "mcpbrowser@latest"],      "enabled": true    }  }}

OpenClaw

OpenClaw is a personal AI assistant that runs on your devices. Add MCPBrowser using the CLI:

bash
openclaw mcp add mcpbrowser -- npx -y mcpbrowser@latest

Verify it's working:

bash
openclaw mcp list

For more information, see the OpenClaw MCP documentation.


Qodo Gen

Open Qodo Gen chat panel in VSCode or IntelliJ → Connect more tools → + Add new MCP → Paste the standard config above.

Click Save.


VS Code (GitHub Copilot)

[Install in VS Code] [Install in VS Code Insiders]

Or install manually:

Follow the MCP install guide, use the standard config above. You can also install the MCPBrowser MCP server using the VS Code CLI:

bash
# For VS Codecode --add-mcp '{"name":"mcpbrowser","command":"npx","args":["-y","mcpbrowser@latest"]}'

After installation, the MCPBrowser MCP server will be available for use with your AI agent in VS Code.


VS Code Extension

Install from VS Code Marketplace or Open VSX Registry, or run:

bash
code --install-extension cherchyk.mcpbrowser

The extension automatically installs and configures everything for your AI agent (GitHub Copilot, Kiro Agent, Antigravity Agent). Also works with VSCodium and other Open VSX-compatible editors.


Warp

Go to Settings -> AI -> Manage MCP Servers -> + Add to add an MCP Server. Use the standard config above.

Alternatively, use the slash command /add-mcp in the Warp prompt and paste the standard config from above.


Windsurf

Follow Windsurf MCP documentation. Use the standard config above.

MCP Tools

browser_fetch_webpage

Fetches web pages using your Chrome/Edge/Brave browser. Handles authentication, CAPTCHA, SSO, anti-bot protection, and JavaScript-heavy sites. Opens the URL in a browser tab (reuses existing tab for same domain) and waits for the page to fully load before returning content. Automatically detects SPAs (React, Vue, Angular) and waits for JavaScript to render content.

Parameters:

  • url (string, required) - The URL to fetch
  • removeUnnecessaryHTML (boolean, optional, default: true) - Remove unnecessary HTML for size reduction by ~90%
  • postLoadWait (number, optional, default: 0) - Additional milliseconds to wait after page load before extracting HTML. Use for pages that need extra time to render.

Examples:

javascript
// Basic fetch{ url: "https://example.com" }
// Fetch with extra wait time for slow-rendering pages{ url: "https://dashboard.example.com", postLoadWait: 2000 }
// Keep full HTML without cleanup{ url: "https://example.com", removeUnnecessaryHTML: false }

browser_execute_javascript

Executes a JavaScript snippet in the active page context and returns the result with metadata (execution time, truncation flag, URL-change detection). Use for structured data extraction (e.g., inbox rows) or JS-driven UI actions that are unreliable via protocol clicks.

⚠️ Note: Page must be already loaded via browser_fetch_webpage first.

Parameters:

  • url (string, required) - The URL of the page (must match a previously fetched page)
  • script (string, required) - JavaScript source to execute in page context
  • timeoutMs (number, optional, default: 30000, max: 60000) - Execution timeout
  • returnType (string, optional, default: json) - json | text | void

Returns: Serialized result (outerHTML for DOM nodes), type, executionTimeMs, truncated, urlChanged, currentUrl, and structured error on failure.

Examples:

javascript
// Extract structured data from a page{  url: "https://mail.google.com/",  script: "[...document.querySelectorAll('tr.zA')].slice(0,5).map(r => ({sender: r.querySelector('.zF')?.textContent, subject: r.querySelector('.bog')?.textContent}))"}
// Click an element via JS when protocol clicks fail{ url: "https://example.com", script: "document.querySelector('#tricky-button').click(); return 'clicked';" }
// Return void (side-effect only){ url: "https://example.com", script: "localStorage.clear();", returnType: "void" }

browser_click_element

Clicks on any clickable element (buttons, links, divs with onclick handlers, etc.). Can target by CSS selector or visible text content. Automatically scrolls element into view and waits for page stability after clicking.

⚠️ Note: Page must be already loaded via browser_fetch_webpage first.

Parameters:

  • url (string, required) - The URL of the page (must match a previously fetched page)
  • selector (string, optional) - CSS selector for the element (e.g., #submit-btn, .login-button)
  • text (string, optional) - Text content to search for if selector not provided (e.g., "Sign In", "Submit")
  • returnHtml (boolean, optional, default: true) - Whether to wait for stability and return HTML after clicking. Set to false for fast form interactions (checkboxes, radio buttons)
  • removeUnnecessaryHTML (boolean, optional, default: true) - Remove unnecessary HTML for size reduction. Only used when returnHtml is true
  • postClickWait (number, optional, default: 1000) - Milliseconds to wait after click for SPAs to render dynamic content
  • waitForElementTimeout (number, optional, default: 1000) - Maximum time to wait for element in milliseconds

Examples:

javascript
// Click by text content{ url: "https://example.com", text: "Sign In" }
// Click by CSS selector{ url: "https://example.com", selector: "#login-button" }
// Click without waiting for HTML (fast checkbox toggle){ url: "https://example.com", selector: "#agree-checkbox", returnHtml: false }
// Click with custom wait time{ url: "https://example.com", text: "Load More", postClickWait: 2000 }

Fallback behavior: If the native click times out after locating the element, MCPBrowser automatically retries with a JavaScript-based click. The response includes fallbackUsed, nativeAttempt, and fallbackAttempt metadata. If both attempts fail, the response lists both errors so you can choose another strategy.


browser_type_text

Types text into one or more input fields in a single call. Supports filling entire forms at once for efficient automation. Automatically clears existing text by default.

⚠️ Note: Page must be already loaded via browser_fetch_webpage first.

Parameters:

  • url (string, required) - The URL of the page (must match a previously fetched page)
  • fields (array, required) - Array of fields to fill. Each field object contains:
    • selector (string, required) - CSS selector for the input element (e.g., #username, input[name="email"])
    • text (string, required) - Text to type into the field
    • clear (boolean, optional, default: true) - Whether to clear existing text first
    • waitForElementTimeout (number, optional, default: 5000) - Maximum time to wait for element in milliseconds
  • returnHtml (boolean, optional, default: true) - Whether to wait for stability and return HTML after typing
  • removeUnnecessaryHTML (boolean, optional, default: true) - Remove unnecessary HTML for size reduction. Only used when returnHtml is true
  • postTypeWait (number, optional, default: 1000) - Milliseconds to wait after typing for SPAs to render dynamic content

Examples:

javascript
// Fill multiple fields at once (login form){  url: "https://example.com/login",  fields: [    { selector: "#username", text: "[email protected]" },    { selector: "#password", text: "secretpass123" }  ]}
// Single field input{ url: "https://example.com", fields: [{ selector: "#search", text: "query" }] }
// Append text without clearing{ url: "https://example.com", fields: [{ selector: "#notes", text: " additional text", clear: false }] }
// Fast form fill without HTML return{  url: "https://example.com/signup",  fields: [    { selector: "#firstName", text: "John" },    { selector: "#lastName", text: "Doe" },    { selector: "#email", text: "[email protected]" }  ],  returnHtml: false}

Error handling: If a field fails, the response indicates:

  • Which field number failed (e.g., "Failed on field 2 of 3")
  • Which fields were successfully filled
  • Clear guidance to NOT re-type already filled fields

browser_get_current_html

Gets the current HTML from an already-loaded page WITHOUT navigating or reloading. Much faster than browser_fetch_webpage since it only extracts the current DOM state. Use this after interactions (click, type) to get the updated page content efficiently.

⚠️ Note: Page must be already loaded via browser_fetch_webpage first.

Parameters:

  • url (string, required) - The URL of the page (must match a previously fetched page)
  • removeUnnecessaryHTML (boolean, optional, default: true) - Remove unnecessary HTML for size reduction by ~90%

Examples:

javascript
// Get current HTML after interactions{ url: "https://example.com" }
// Get full HTML without cleanup{ url: "https://example.com", removeUnnecessaryHTML: false }

Performance comparison:

  • browser_fetch_webpage: 2-5 seconds (full page reload)
  • browser_get_current_html: 0.1-0.3 seconds (just extracts HTML) ✅

browser_scroll_page

Scrolls within an already-loaded page. Use before browser_take_screenshot to capture different parts of the page, or to bring elements into view before interaction. Supports multiple scroll modes:

  • By direction: Scroll up/down/left/right by pixel amount
  • To element: Scroll until a specific element is visible
  • To position: Scroll to absolute coordinates

⚠️ Note: Page must be already loaded via browser_fetch_webpage first.

Parameters:

  • url (string, required) - The URL of the page (must match a previously fetched page)
  • direction (string, optional) - Direction to scroll: up, down, left, right. Use with amount.
  • amount (number, optional, default: 500) - Pixels to scroll in the specified direction (~half a viewport)
  • selector (string, optional) - CSS selector of element to scroll into view. Ignores direction/amount.
  • x (number, optional) - Absolute horizontal scroll position. Use with y.
  • y (number, optional) - Absolute vertical scroll position. Use with x.

Examples:

javascript
// Scroll down by 500px (default){ url: "https://example.com", direction: "down" }
// Scroll down by 1000px{ url: "https://example.com", direction: "down", amount: 1000 }
// Scroll an element into view{ url: "https://example.com", selector: "#footer" }
// Scroll to specific position{ url: "https://example.com", x: 0, y: 2000 }
// Scroll to top of page{ url: "https://example.com", x: 0, y: 0 }

Returns: Current scroll position, page dimensions, and viewport size — useful for understanding where you are on the page.


browser_take_screenshot

Takes a screenshot of an already-loaded page for visual analysis. Useful when HTML parsing is insufficient — for example, pages with charts, images, complex layouts, popups, or visual content that's hard to understand from HTML alone. Returns a PNG image.

⚠️ Note: Page must be already loaded via browser_fetch_webpage first.

Parameters:

  • url (string, required) - The URL of the page (must match a previously fetched page)
  • fullPage (boolean, optional, default: false) - Capture the full scrollable page instead of just the viewport

Examples:

javascript
// Capture viewport screenshot (default){ url: "https://example.com" }
// Capture full scrollable page{ url: "https://dashboard.example.com", fullPage: true }

Use cases:

  • Visualize page layout when HTML is hard to parse
  • Capture charts, graphs, or data visualizations
  • Debug popups, modals, or overlays
  • Understand visual feedback (highlights, animations)
  • See what's blocking an element click

browser_close_tab

Closes the browser tab for the given URL's hostname. Removes the page from the tab pool and forces a fresh session on the next visit to that hostname. Useful for clearing authentication state, managing memory, or starting fresh with a domain.

⚠️ Note: Uses exact hostname match (www.example.com and example.com are treated as different tabs).

Parameters:

  • url (string, required) - The URL whose hostname tab should be closed

Examples:

javascript
// Close tab for a domain{  url: 'https://example.com';}
// This will close the tab for portal.azure.com{  url: 'https://portal.azure.com/dashboard';}

Use cases:

  • Clear authentication/session state
  • Free up browser memory
  • Reset to fresh state before new login

CLI Mode

MCPBrowser can also be used as a standalone command-line tool, making it easy to use from shell scripts, CI/CD pipelines, or AI agents that work through shell commands (like GitHub Copilot CLI).

bash
# Show helpmcpbrowser --help
# Fetch a page (handles auth, SSO, SPAs automatically)mcpbrowser fetch https://eng.ms/docs/my-page
# Fetch with raw HTML outputmcpbrowser fetch https://github.com --browser chrome --raw
# Take a screenshotmcpbrowser screenshot https://example.com --output page.png --full-page
# Click an element on a loaded pagemcpbrowser click https://example.com --selector "#login-btn"
# Type into a form fieldmcpbrowser type https://example.com --selector "input[name=q]" --text "search query"
# Execute JavaScriptmcpbrowser exec https://example.com --script "document.title"
# Get current HTML of a loaded pagemcpbrowser html https://example.com

CLI vs MCP mode: When run without arguments, MCPBrowser starts as an MCP server (stdin/stdout JSON-RPC). When run with a subcommand, it executes the command and exits — no MCP protocol needed.


Configuration (Optional)

Environment variables for advanced setup:

VariableDescriptionDefault
CHROME_PATHPath to Chrome/Edge/BraveAuto-detect
CHROME_USER_DATA_DIRBrowser profile directory%LOCALAPPDATA%/ChromeAuthProfile
CHROME_REMOTE_DEBUG_PORTDevTools port9222

Troubleshooting

Browser doesn't open?

  • Make sure Chrome, Edge, or Brave is installed
  • Try setting CHROME_PATH explicitly

Can't connect to browser?

  • Close all Chrome instances and try again
  • Check if port 9222 is in use

Authentication not preserved?

  • Keep the browser tab open (default behavior)
  • Use the same domain for related requests

E401 error with npx / private npm registry?

If your project has a .npmrc that points to a private registry (e.g., Azure Artifacts, GitHub Packages, Artifactory), npx will try to fetch mcpbrowser from that registry instead of npmjs.org and fail with E401.

Fix: Add npm_config_registry to the env block in your MCP config:

json
{  "mcpServers": {    "mcpbrowser": {      "command": "npx",      "args": ["-y", "mcpbrowser@latest"],      "env": {        "npm_config_registry": "https://registry.npmjs.org"      }    }  }}

Alternative: Install globally to skip npx entirely:

bash
npm install -g mcpbrowser

Then use "command": "mcpbrowser" with no args in your MCP config.

For Developers

Clone and setup:

bash
git clone https://github.com/cherchyk/MCPBrowser.gitcd MCPBrowsernpm run install:all  # Installs dependencies for all workspace packages

Run tests:

bash
# Test everythingnpm test
# Test MCP server onlynpm run test:mcp
# Test extension onlynpm run test:extension

Build and format both projects:

bash
pnpm build   # Creates the MCP server .tgz and VS Code extension .vsixpnpm format  # Formats the entire workspace

Links

License

MIT

來源:README.md,提交 9a80589

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分