Skip to main content
Glama
scenario.yaml2.27 kB
# Verifies MCPX connects to the MCP Inspector CLI client and the control-plane registers the agent. name: "MCP Inspector Agent Smoke Test" image: us-central1-docker.pkg.dev/prj-common-442813/mcpx/mcpx:v0.2.17-66354a7 configMount: config env: {} dependentContainers: [] aiAgent: type: mcp-inspector aiAgentPolling: true loopDelaySec: 1 verboseOutput: false steps: - name: "Time MCP Server Call" kind: backend toolName: time__get_current_time payload: timezone: "UTC" expected: mode: regex value: "\"timezone\"\\s*:\\s*\"UTC\"" - name: Refresh Control-Plane UI kind: browser toolName: browser_navigate payload: url: http://localhost:5173 expected: mode: regex value: "Ran Playwright code" - name: Wait for Inspector updates kind: browser toolName: browser_wait_for payload: time: 5 expected: mode: contains value: "Waited for 5" - name: Verify MCP Inspector registered kind: browser toolName: browser_evaluate payload: function: | () => { const deadline = Date.now() + 120000; const extractLabels = () => { const disallowed = [/^ai agent$/i, /\btools\b/i]; return Array.from(document.querySelectorAll('[id^="agent-"]')) .map((node) => { const texts = Array.from(node.querySelectorAll('*')) .map((el) => (el.textContent || '').trim()) .filter(Boolean); const label = texts.find((text) => !disallowed.some((re) => re.test(text))); return label ? label.toLowerCase() : undefined; }) .filter(Boolean); }; return new Promise((resolve) => { (function poll() { const labels = extractLabels(); if (labels.length > 0) { resolve(`found-agent:${labels.join(',')}`); return; } if (Date.now() > deadline) { resolve(`labels:${labels.join(',')}`); return; } setTimeout(poll, 500); })(); }); } expected: mode: contains value: "found-agent"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheLunarCompany/lunar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server