European Search Engine - Staan MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STAAN_API_KEY | Yes | Staan API key, sent upstream as Authorization: Bearer. Required to call a tool. Must be visible ASCII without spaces. | |
| STAAN_TIMEOUT | No | Timeout of one attempt, in seconds (must be greater than 0). | 30 |
| STAAN_BASE_URL | No | API base URL. Must be https unless the host is loopback, must have a valid port, and must not contain credentials (user:password@). | https://api.staan.ai/v2 |
| STAAN_DEADLINE | No | Overall limit for one tool call, retries and waits included, in seconds (must be greater than 0). Keep it below your client's own tool timeout (often 60 s). | 50 |
| STAAN_MCP_HOST | No | Bind address (HTTP transports). | 127.0.0.1 |
| STAAN_MCP_PATH | No | URL path of the MCP endpoint. | /mcp |
| STAAN_MCP_PORT | No | Bind port (HTTP transports). | 8000 |
| STAAN_RATE_LIMIT | No | Most requests per second the server starts, retries included, all tools and markets together; later ones wait. A number: from 1 upwards it is rounded down, below 1 it spaces requests 1 / rate seconds apart. 0 turns the limit off. Staan's default cap is 20. | 20 |
| STAAN_MAX_RETRIES | No | Retries for 429, 500, 502, 503, 504 and connection errors (0 to 10); read and write timeouts are never retried. | 2 |
| STAAN_MCP_LOG_LEVEL | No | Log level, also applied to the HTTP server (WARNING hides its per-request access log). Logs go to stderr only. | WARNING |
| STAAN_MCP_TRANSPORT | No | Transport to serve: stdio, http or stateless. | stdio |
| STAAN_MCP_AUTH_SCOPES | No | Scopes every token must have, space- or comma-separated. | |
| STAAN_MCP_ALLOWED_HOSTS | No | Accepted Host header value. Repeat the flag, or comma-separate the variable. | |
| STAAN_MCP_AUTH_JWKS_URL | No | JWKS URL for verifying JWT access tokens. Exactly one of the JWKS and introspection URLs must be set. Requires the oauth extra. | |
| STAAN_MCP_AUTH_CLIENT_ID | No | Client id for introspection (HTTP Basic). Required with introspection. | |
| STAAN_MCP_ALLOWED_ORIGINS | No | Accepted Origin header value. Comma-separate multiple values. | |
| STAAN_MCP_AUTH_ALGORITHMS | No | Accepted JWT algorithms. none is always refused. | RS256,ES256 |
| STAAN_MCP_AUTH_ISSUER_URL | No | Issuer URL of your authorization server. Tokens must carry this iss. Setting any STAAN_MCP_AUTH_* variable enables the OAuth gate (HTTP transports only). | |
| STAAN_MCP_AUTH_RESOURCE_URL | No | Canonical public URL of this MCP endpoint, for example https://mcp.example.com/mcp. Tokens must have this value as their audience. | |
| STAAN_MCP_MAX_CONTENT_CHARS | No | Longest full_content text kept per search result (0, or at least 200). Longer pages are cut at a paragraph boundary and marked [... truncated ...]. Applies to both simple_response modes. | 0 |
| STAAN_MCP_AUTH_CLIENT_SECRET | No | Client secret for introspection. Required with introspection. | |
| STAAN_MCP_AUTH_INTROSPECTION_URL | No | RFC 7662 introspection endpoint. Exactly one of the JWKS and introspection URLs must be set. Needs a client id and secret. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| web_searchA | Search the internet. Returns ranked results as a JSON array of {"title", "url", "snippet", "full_content"?}. |
| answerA | Answer a question with citations, grounded in web pages or in sources you supply. Use it instead of web_search when you want a ready answer created by another LLM. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
web_search returns ranked result objects, while answer returns a synthesized cited response, so the retrieval-vs-synthesis distinction is clear. There is slight conceptual overlap because answer may be grounded in web pages, but the description explicitly guides tool selection.
web_search follows a snake_case verb_noun pattern, while answer is a bare verb. The two names are readable and not chaotic, but they do not share one fully predictable pattern.
Two tools is thin for a search-engine server, even though search and answer are core operations. The count is borderline rather than well-scoped because adjacent capabilities such as page retrieval or filtered search are absent.
The surface covers the main search and grounded-answer workflows, and web_search can return full page content. Minor gaps remain around direct URL retrieval, pagination/filtering, or specialized search modes, but agents can work around them.