@testneo/mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TESTNEO_API_KEY | Yes | API key for authentication | |
| TESTNEO_BASE_URL | Yes | The base URL of the TestNeo API (e.g., http://localhost:8001) | |
| TESTNEO_ROUTE_PROFILE | No | Optional preset phrase map: 'none' or 'saucedemo' (default: none) | none |
| TESTNEO_MCP_TIMEOUT_MS | No | Timeout in milliseconds (default: 20000) | 20000 |
| TESTNEO_MCP_USER_AGENT | No | User agent string (default: @testneo/mcp-server) | @testneo/mcp-server |
| TESTNEO_ROUTE_MAP_JSON | No | JSON object of phrase → path mappings (optional) | |
| TESTNEO_MCP_ALLOW_WRITE | No | Allow write operations (default: false). Set 'true' to enable | false |
| TESTNEO_MCP_POLICY_MODE | No | Precondition policy behavior: 'strict' or 'warn' (default: strict) | strict |
| TESTNEO_ROUTE_HARDENING | No | Enable phrase→path rewrites (default: true) | true |
| TESTNEO_MCP_TELEMETRY_JSONL | No | Emit one JSON line per tool invocation to stderr (default: false) | false |
| TESTNEO_MCP_SWAGGER_TIMEOUT_MS | No | Swagger multipart timeout in milliseconds (default: 120000) | 120000 |
| TESTNEO_MCP_RELAX_PROJECT_PRECONDITIONS | No | Skip executable-base URL checks on generate/execute tools (default: false) | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| testneo_validate_connectionA | Validate token and fetch basic account context. |
| testneo_validate_prC | Run TestNeo PR validation planning from diff or git refs. Returns shared workflow context, impacted tests, planned verification stages, and Claude-ready findings using the new orchestration contracts. |
| testneo_get_local_agent_statusA | Returns whether a TestNeo self-hosted agent is registered and recently heartbeating (local runner). Includes setup_url on the same origin as TESTNEO_BASE_URL (for example …/web/agent). Read-only. |
| testneo_list_tests_by_tagsA | List web test case ids for a project matching one or more tags. Tags may include a leading @; each tag is queried separately (union with tag_match=any, intersection with all). Backend: GET /api/web/v1/test-cases/?tag_filter= (one tag per request). |
| testneo_find_test_casesA | List web test cases in a project using the backend text search (?search= on GET /api/web/v1/test-cases/). Matches name/description per API rules. Read-only — use returned id + name with testneo_run_generated_test_pipeline (test_case_id) or pass project_id + name_query to run by name. |
| testneo_run_batch_by_tagsB | Create and execute a multi-test run for tests matching tags (write: requires TESTNEO_MCP_ALLOW_WRITE + confirm=true). Resolves tags like testneo_list_tests_by_tags, then POST /api/web/v1/multi-test-runs/create and POST …/execute. When TESTNEO_MCP_DEFAULT_EXECUTION_MODE=local and TESTNEO_MCP_PREFER_LOCAL_AGENT=true, sets use_agent for the local TestNeo agent. While use_agent: polls GET /agents/my-agent until connected or until TESTNEO_MCP_WAIT_FOR_AGENT_MS / wait_for_agent_seconds elapses (avoids failing if you start the agent seconds after invoking the tool). Optional TESTNEO_MCP_OPEN_AGENT_SETUP_ON_AGENT_FAILURE opens setup_url on hard agent failure. |
| testneo_suggest_api_test_chainsA | Scan Swagger/NLP-derived API-style web tests for a project and return suggested business-flow chains (ordering, phases, suite summaries). Read-only: GET /api/web/v1/projects/{id}/api-test-chains/suggest. Use before recommending which suite to run or before testneo_save_api_test_chain / testneo_run_api_test_chain. |
| testneo_list_saved_api_test_chainsA | List user-saved API test chain suites for a web project (ordered test_case_ids). Read-only: GET /api/web/v1/projects/{id}/api-test-chains. |
| testneo_save_api_test_chainB | Persist a named API test chain (ordered NLP/API web tests) for a project. Guarded: TESTNEO_MCP_ALLOW_WRITE + confirm=true. Backend: POST /api/web/v1/projects/{id}/api-test-chains. |
| testneo_delete_saved_api_test_chainA | Delete a saved API test chain by id. Guarded: TESTNEO_MCP_ALLOW_WRITE + confirm=true. Backend: DELETE /api/web/v1/projects/{id}/api-test-chains/{chain_id}. |
| testneo_run_api_test_chainA | Create and execute a multi-test run using an ordered API chain: either explicit test_case_ids (preserves order) or saved_chain_id from testneo_list_saved_api_test_chains. Same execution routing as testneo_run_batch_by_tags (local agent wait, use_agent, etc.). Guarded: TESTNEO_MCP_ALLOW_WRITE + confirm=true. |
| testneo_get_project_route_mapC | Get project-level MCP route-hardening map/profile from project_settings.mcp_route_hardening. |
| testneo_set_project_route_mapB | Persist project-level route-hardening map/profile in project_settings.mcp_route_hardening (guarded write action). |
| testneo_apply_route_hardeningA | Rewrite vague Navigate-to NLP lines into {{base_url}}/path using server env (TESTNEO_ROUTE_PROFILE, TESTNEO_ROUTE_MAP_JSON) plus optional per-call overrides. Read-only; does not call the TestNeo API. |
| testneo_swagger_previewA | Parse Swagger/OpenAPI (JSON or YAML) from base64 and return spec format, tags, and endpoint counts. Read-only; no DB writes. Backend: POST /api/web/v1/ai-test-gen/preview. |
| testneo_swagger_upload_and_generateA | Upload Swagger + optional business rules → unified context indexing + NLP web test cases (multipart). Guarded: TESTNEO_MCP_ALLOW_WRITE + confirm=true. Respects project execution preconditions. Large payloads: set TESTNEO_MCP_SWAGGER_TIMEOUT_MS. Backend: POST /api/web/v1/ai-test-gen/upload-and-generate. |
| testneo_swagger_impact_analysisB | Compare an uploaded Swagger revision against the last snapshot for a web project, diff endpoints, and list impacted swagger-sourced NLP tests. Persists the modified spec bytes for the next baseline. Guarded: allow-write + confirm=true. Backend: POST /api/web/v1/ai-test-gen/impact-analysis. |
| testneo_swagger_impact_actionsB | Bulk apply impact triage on web test cases: mark_stale | archive | keep, then promote modified spec snapshot when possible. Guarded: allow-write + confirm=true. Backend: POST /api/web/v1/ai-test-gen/impact-actions. |
| testneo_api_project_upload_openapiA | Upload OpenAPI JSON/YAML to a classic API project (stores spec on Project.openapi_spec). Use before testneo_api_project_openapi_impact. Guarded: allow-write + confirm=true. Backend: POST /api/v1/projects/{id}/upload-openapi (multipart field: file). |
| testneo_api_project_openapi_impactB | Run OpenAPI impact analysis for API (non-web) test cases against a new or stored spec. Pass openapi_spec to diff an inline revision, or omit to analyze using the spec already saved on the project. Guarded: allow-write + confirm=true (service may flag tests). Backend: POST /api/v1/projects/{id}/openapi-impact. |
| testneo_list_projectsB | List projects available to the current API key user. |
| testneo_create_web_projectA | Create a new web automation project (stored under your API key account). Mirrors POST /api/web/v1/projects. Guarded: TESTNEO_MCP_ALLOW_WRITE=true and confirm=true. By default creates a default web environment with base_url (and optional username/password variables) in the same request; set create_default_environment=false for project-only. New projects get Lighthouse performance audits enabled unless project_settings overrides. |
| testneo_create_web_project_environmentB | Create a named web project environment with optional variables (e.g. base_url for {{base_url}} in NLP). Backend: POST /api/web/v1/projects/{project_id}/environments. Guarded: allow-write + confirm=true. |
| testneo_bootstrap_web_mcp_projectA | One-shot onboarding: validate → create web project with optional default environment (base_url + credentials) in a single POST when add_base_url_variable=true. Returns a trace + recommended_next_tools. Guarded like other writes. |
| testneo_list_recent_executionsC | List recent executions, optionally filtered by project/status/release/build. |
| testneo_get_execution_statusC | Fetch primary execution status, steps and summary metadata for an execution ID. |
| testneo_get_execution_summaryB | Get analytics summary for an execution (status, pass/fail, duration, video metadata). |
| testneo_get_execution_logsC | Get execution logs for an execution ID. |
| testneo_search_failuresB | Search failed executions for a project by test name or execution id fragment. |
| testneo_get_pass_fail_trendC | Summarize pass/fail trend for a project over a date range. |
| testneo_watch_executionB | Poll execution summary until terminal status or timeout window. |
| testneo_get_failure_bundleA | Get a compact failure triage bundle: summary, event sample, logs, inferred theme, next actions, plus a concrete suggested NLP patch (diff + testneo_update_test_case_nlp payload) when execution summary includes test_case_id. |
| testneo_run_agent_workflowC | Run an agentic multi-step QA workflow (triage_failure, rerun_decision, qa_intelligence) over TestNeo data. |
| testneo_ingest_figma_contextB | Ingest Figma metadata via ETL, optionally wait for completion, then create a linked unified context for test generation. |
| testneo_list_unified_contextsB | List unified contexts for a project with id + human-readable names. Use before testneo_generate_tests_from_context so agents do not have to scrape context_id from the UI. |
| testneo_get_unified_context_by_nameB | Resolve unified context_id from a natural-language name against this project’s contexts (calls list internally). Great for onboarding and demos. |
| testneo_ai_assistant_queryA | Same Web AI Assistant as the product UI (/web/ai-assistant): natural-language Q&A over a project, optionally scoped to a unified context (PDF/Figma/requirements ingest). POST /api/web/v1/etl/ai-assistant/query. Pass context_id or context_name_query; omit both for project-wide analytics-style questions. Uses your Web AI chat quota. Optional recommend_context / rag_context match the web request body for AI-Q and document-aware answers. |
| testneo_generate_tests_from_contextB | Generate NLP test cases from an existing unified context (Figma, requirements, etc.). Resolve context via testneo_list_unified_contexts or testneo_get_unified_context_by_name (name_query, not scraped UI ids). Omit auth_preamble for public / no-login apps (default: no SauceDemo login injected, no SauceDemo route auto-align). Pass auth_preamble { enabled:true, preset:'saucedemo' } only for demos against saucedemo.com. Custom maps: TESTNEO_ROUTE_MAP_JSON or testneo_set_project_route_map; optional auto_align_saucedemo_route_map + SauceDemo preset ties route phrases to SauceDemo paths. |
| testneo_preview_generated_testsA | Preview generated tests in both NLP and Playwright SDK spec.ts draft format for human-in-loop approval. Applies route hardening (env + optional route_hardening) to Navigate-to lines when a phrase map is configured. |
| testneo_execute_generated_test_caseA | Execute a generated test case by numeric test_case_id OR by project_id + name_query (resolved via GET …/test-cases/?search= then exact/unique name match). Human-in-loop gated. POST /api/web/v1/test-cases/{id}/execute — passes use_agent when TESTNEO_MCP_DEFAULT_EXECUTION_MODE=local and TESTNEO_MCP_PREFER_LOCAL_AGENT=true (same routing as batch). Optional wait_for_agent_seconds + env TESTNEO_MCP_WAIT_FOR_AGENT_MS / TESTNEO_MCP_REQUIRE_LOCAL_AGENT_FOR_BATCH control preflight polling. Use testneo_find_test_cases to browse matches before running. |
| testneo_run_generated_test_pipelineC | End-to-end: execute a generated test by test_case_id OR (project_id + name_query), poll until terminal, return analytics summary + step-level execution, optional failure triage bundle, and project pass/fail trend. POST /api/web/v1/test-cases/{id}/execute sends use_agent when local+prefer-local (same as testneo_execute_generated_test_case). name_match_mode: auto|exact|substring. Optional wait_for_agent_seconds for preflight. |
| testneo_update_test_case_nlpB | Update NLP commands for a specific test case ID and return verification snapshot. Optionally rewrites Navigate-to lines using route hardening (same env / route_hardening as generate). |
| testneo_export_playwright_specB | Export a test case as Playwright SDK TypeScript spec text. |
| testneo_run_playwright_spec_previewC | Run a Playwright SDK spec preview by extracting ai.run commands and executing via Playwright SDK execute endpoint. |
| testneo_figma_to_tests_workflowC | End-to-end workflow: ingest Figma -> create unified context -> generate tests -> preview NLP + Playwright drafts. |
| testneo_figma_image_to_tests_workflowA | No Figma token: upload exported UI image (PNG/JPEG/GIF/WebP) like the product 'Upload Figma Image' flow → wait for vision ETL → create unified context → generate tests → preview. Guarded: TESTNEO_MCP_ALLOW_WRITE + confirm=true. Backend: POST /api/web/v1/etl/upload-figma-image (multipart field: file). |
| testneo_rerun_failedB | Rerun failed tests for a project using test-case execute endpoint (guarded write action). |
| testneo_trigger_playwright_executionB | Trigger NLP execution via Playwright SDK execute endpoint (write tool, requires confirm + allow-write). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/gururajhm-neo/testneo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server