=== NEW SERVERS ADDED (7) === - servers/closebot — 119 tools, 14 modules, 4,656 lines TS (Stage 7) - servers/google-console — Google Search Console MCP (Stage 7) - servers/meta-ads — Meta/Facebook Ads MCP (Stage 8) - servers/twilio — Twilio communications MCP (Stage 8) - servers/competitor-research — Competitive intel MCP (Stage 6) - servers/n8n-apps — n8n workflow MCP apps (Stage 6) - servers/reonomy — Commercial real estate MCP (Stage 1) === FACTORY INFRASTRUCTURE ADDED === - infra/factory-tools — mcp-jest, mcp-validator, mcp-add, MCP Inspector - 60 test configs, 702 auto-generated test cases - All 30 servers score 100/100 protocol compliance - infra/command-center — Pipeline state, operator playbook, dashboard config - infra/factory-reviews — Automated eval reports === DOCS ADDED === - docs/MCP-FACTORY.md — Factory overview - docs/reports/ — 5 pipeline evaluation reports - docs/research/ — Browser MCP research === RULES ESTABLISHED === - CONTRIBUTING.md — All MCP work MUST go in this repo - README.md — Full inventory of 37 servers + infra docs - .gitignore — Updated for Python venvs TOTAL: 37 MCP servers + full factory pipeline in one repo. This is now the single source of truth for all MCP work.
66 lines
2.4 KiB
TypeScript
66 lines
2.4 KiB
TypeScript
import { test, expect } from "@playwright/test";
|
|
|
|
// These tests verify that CLI arguments correctly set URL parameters
|
|
// The CLI should parse config files and pass transport/serverUrl as URL params
|
|
test.describe("CLI Arguments @cli", () => {
|
|
test("should pass transport parameter from command line", async ({
|
|
page,
|
|
}) => {
|
|
// Simulate: npx . --transport sse --server-url http://localhost:3000/sse
|
|
await page.goto(
|
|
"http://localhost:6274/?transport=sse&serverUrl=http://localhost:3000/sse",
|
|
);
|
|
|
|
// Wait for the Transport Type dropdown to be visible
|
|
const selectTrigger = page.getByLabel("Transport Type");
|
|
await expect(selectTrigger).toBeVisible();
|
|
|
|
// Verify transport dropdown shows SSE
|
|
await expect(selectTrigger).toContainText("SSE");
|
|
|
|
// Verify URL field is visible and populated
|
|
const urlInput = page.locator("#sse-url-input");
|
|
await expect(urlInput).toBeVisible();
|
|
await expect(urlInput).toHaveValue("http://localhost:3000/sse");
|
|
});
|
|
|
|
test("should pass transport parameter for streamable-http", async ({
|
|
page,
|
|
}) => {
|
|
// Simulate config with streamable-http transport
|
|
await page.goto(
|
|
"http://localhost:6274/?transport=streamable-http&serverUrl=http://localhost:3000/mcp",
|
|
);
|
|
|
|
// Wait for the Transport Type dropdown to be visible
|
|
const selectTrigger = page.getByLabel("Transport Type");
|
|
await expect(selectTrigger).toBeVisible();
|
|
|
|
// Verify transport dropdown shows Streamable HTTP
|
|
await expect(selectTrigger).toContainText("Streamable HTTP");
|
|
|
|
// Verify URL field is visible and populated
|
|
const urlInput = page.locator("#sse-url-input");
|
|
await expect(urlInput).toBeVisible();
|
|
await expect(urlInput).toHaveValue("http://localhost:3000/mcp");
|
|
});
|
|
|
|
test("should not pass transport parameter for stdio config", async ({
|
|
page,
|
|
}) => {
|
|
// Simulate stdio config (no transport param needed)
|
|
await page.goto("http://localhost:6274/");
|
|
|
|
// Wait for the Transport Type dropdown to be visible
|
|
const selectTrigger = page.getByLabel("Transport Type");
|
|
await expect(selectTrigger).toBeVisible();
|
|
|
|
// Verify transport dropdown defaults to STDIO
|
|
await expect(selectTrigger).toContainText("STDIO");
|
|
|
|
// Verify command/args fields are visible
|
|
await expect(page.locator("#command-input")).toBeVisible();
|
|
await expect(page.locator("#arguments-input")).toBeVisible();
|
|
});
|
|
});
|