Skip to main content
Glama

AgentQL MCP Server

Base URL: https://api.agentql.com

Category

Developer Tools

Tools

3

Auth

API Key


Install

API_KEY=YOUR_API_KEY \
uvx mcparmory-agentql

With pip

pip install mcparmory-agentql
API_KEY=YOUR_API_KEY \
mcparmory-agentql

MCP Client Configuration

Add to your MCP client config (e.g. Claude Desktop, Cursor, Codex):

{
  "mcpServers": {
    "agentql": {
      "command": "uvx",
      "args": ["mcparmory-agentql"],
      "env": {
        "API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Related MCP server: Hyperbrowser MCP Server

Credentials

Set the following environment variables (via MCP client env config, shell export, or .env file):

  • API_KEY — API Key Authentication (X-API-Key)

Do not commit credentials to version control.


Run Locally

First, configure your credentials in .env (see Credentials above).

pip install -r requirements.txt
python server.py

Connect MCP Client

Edit .mcp.json and replace <SERVER_DIR> with the absolute path to this directory, then add to your MCP client configuration.

Example (if server is at /home/user/mcp-servers/agentql):

{
  "mcpServers": {
    "agentql": {
      "command": "python",
      "args": ["/home/user/mcp-servers/agentql/server.py"]
    }
  }
}

Docker

docker run -p 8000:8000 \
  -e API_KEY=YOUR_API_KEY \
  ghcr.io/mcparmory/agentql:latest

Build from source

First, configure your credentials in .env (see Credentials above).

docker build -t agentql .
docker run -p 8000:8000 --env-file .env agentql

Before running, make sure ports 8000 are free.### MCP client config (Docker)

For Docker, use SSE transport in your MCP client config:

{
  "mcpServers": {
    "agentql": {
      "type": "sse",
      "url": "http://localhost:8000/sse"
    }
  }
}

Files

  • .env - Credentials and server configuration

  • .mcp.json - MCP client config template

  • Dockerfile - Container build

  • LICENSE - MIT license for this generated code

  • requirements.txt - Python dependencies

  • README.md - This file

  • server.py - MCP server entry point

  • _auth.py - Authentication handlers

  • _models.py - Request/response models

  • _validators.py - Input validation

Note: Files starting with . are hidden by default on macOS/Linux. Use ls -a in terminal or enable "Show hidden files" in your file manager to see .env and .mcp.json.


Available Tools

4 tools
create_browser_sessionA

Creates a new Tetra browser session with configurable user agent, profile, proxy, and lifecycle settings. Returns session details needed to connect and interact with the browser.

ParametersJSON Schema
NameRequiredDescriptionDefault
browser_ua_presetNoThe operating system user agent preset the browser will identify as, affecting how websites perceive the client environment.
browser_profileNoThe browser profile determining capability and detection resistance: 'light' prioritizes speed with minimal overhead, 'stealth' enables full anti-detection features, and 'tf-browser' uses a custom TF Browser configuration.
shutdown_modeNoControls session teardown behavior on disconnect: 'on_disconnect' immediately stops the session when all connections close, while 'on_inactivity_timeout' keeps the session alive to allow reconnection until the inactivity timeout elapses.
inactivity_timeout_secondsNoHow long the session remains alive without active connections before being shut down, applicable when shutdown_mode is 'on_inactivity_timeout'. Accepts values between 5 seconds and 86400 seconds (24 hours).
proxyNoProxy server configuration to route browser traffic through for this session, such as host, port, protocol, and credentials.
sub_user_idNoAn optional identifier used to associate this session with a specific sub-user within your account, useful for tracking and auditing sessions across multiple users.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions configurable lifecycle settings and return of session details but lacks disclosure of side effects, destruction behavior, or authentication requirements. Basic transparency but not deep.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with action and resource, no redundant information. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters (all described), no output schema, and no annotations, the description is brief. It does not detail return values or side effects, which would be helpful for a creation tool that returns connection details. Adequate but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in schema. The description adds a high-level summary of configurable aspects but does not provide additional meaning beyond what schema already offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new Tetra browser session, lists configurable aspects (user agent, profile, proxy, lifecycle), and mentions return value. It distinguishes from sibling tools which are about usage and data querying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives or when not to use it. The description only explains what it does without any usage context or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usageA

Retrieves current API key usage statistics and subscription details for the authenticated account. Useful for monitoring consumption limits and understanding remaining quota.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must stand alone. It states it retrieves data but omits whether it's read-only, rate limits, or response structure. Basic but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action, no wasted words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so description should detail return values; it does not specify what 'usage statistics' includes. Also missing idempotency and auth details beyond 'authenticated account'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, schema coverage is 100%. Baseline 3 per guidelines since schema covers all; description adds nothing beyond what schema already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves API key usage statistics and subscription details, with a specific verb and resource. The sibling tools (browser sessions, webpage data) are distinct, so no confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'useful for monitoring consumption limits and understanding remaining quota', giving clear context. Does not mention when not to use, but siblings are unrelated, so no conflict.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_session_usageA

Retrieve a paginated list of Tetra browser session usage records for the authenticated user, with optional filtering by user, session, time range, and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
sub_user_idNoFilter results to only include sessions belonging to a specific sub-user under the authenticated account.
session_idNoFilter results to a specific browser session by its unique session identifier.
start_afterNoReturn only sessions that started after this timestamp, specified in ISO 8601 date-time format.
end_beforeNoReturn only sessions that ended before this timestamp, specified in ISO 8601 date-time format.
statusNoFilter sessions by their current lifecycle status; use 'running' for active sessions or 'ended' for completed sessions.
limitNoMaximum number of session records to return per page; must be between 1 and 1000.
pageNoPage number to retrieve for paginated results; must be 1 or greater.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It correctly identifies a paginated read operation with optional filtering, but lacks details on pagination behavior (e.g., default limit, total count) or any rate limits. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no redundancy. It front-loads the key action and resource, and efficiently lists the optional filters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should explain what each session usage record contains, but it does not. It also omits pagination details like how to iterate or interpret paginated responses. The tool is adequately described for its input, but incomplete for expected output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds little beyond the schema, simply summarizing the filter categories (user, session, time range, status) that are already in the parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a paginated list of session usage records for the authenticated user, with optional filters. It distinguishes from siblings like create_browser_session (creates sessions) and query_webpage_data (queries page data).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the tool is for the authenticated user and lists optional filters, but does not explicitly state when to use it over alternatives or provide when-not scenarios. The context signals help, but more explicit guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_webpage_dataB

Extracts structured data from a webpage using an AgentQL query or a natural language prompt. Accepts either a live URL or raw HTML as the data source.

ParametersJSON Schema
NameRequiredDescriptionDefault
content-typeYesMIME type of the request body, required to correctly parse the payload.
queryNoAn AgentQL (AQL) query string specifying the exact data fields to extract from the page. If omitted, a query will be auto-generated from the prompt.
promptNoA natural language description of the data to extract, used to auto-generate an AgentQL query when no explicit query is provided.
urlNoThe fully qualified URL of the webpage to load and query. Either url or html must be provided as the data source.
htmlNoRaw HTML content of the webpage to query, used as an alternative to providing a live URL.
modeNoControls the response generation strategy: 'fast' prioritizes speed, 'standard' prioritizes accuracy and completeness.
wait_forNoNumber of seconds to wait for dynamic page content to load before capturing the snapshot. Maximum allowed wait time is 10 seconds.
is_scroll_to_bottom_enabledNoWhen enabled, the browser scrolls to the bottom of the page before capturing the snapshot, useful for triggering lazy-loaded content.
is_screenshot_enabledNoWhen enabled, a screenshot of the page is captured during the query session, which may be useful for debugging or visual verification.
browser_profileNoDetermines the browser profile used for the session: 'light' uses a fast headless browser, 'stealth' applies anti-detection techniques for bot-protected pages.
proxyNoOptional proxy configuration to route the browser session through a specific proxy server, useful for geo-restricted or access-controlled pages.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It fails to disclose critical behaviors such as whether the tool is read-only, rate limits, authentication needs, or error handling. Important details like what happens if both url and html are given are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single 19-word sentence that packs the core purpose and data source options. Every word earns its place; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, no output schema, and no annotations, the description is too minimal. It omits what the output looks like, error scenarios, and behavioral nuances. A more comprehensive description is needed for this complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds minimal extra meaning beyond the schema (e.g., 'AgentQL query or natural language prompt' is already in schema). Baseline 3 is appropriate as the description does not compensate for any missing schema detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Extracts structured data from a webpage' using a query or prompt, and specifies data sources (URL or raw HTML). This is a specific verb+resource that distinguishes it from sibling tools like create_browser_session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for data extraction but does not explicitly compare with siblings or give when-not-to-use guidance. It mentions query vs prompt options, which helps, but lacks exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct functionality: browser session creation, API usage statistics, session usage records, and webpage data extraction. No overlap in purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (create_browser_session, get_usage, list_session_usage, query_webpage_data).

Tool Count4/5

4 tools is slightly below average but reasonable for the focused domain of browser automation and data extraction. Could benefit from additional lifecycle management tools.

Completeness3/5

Missing session deletion/closure (only create is provided) and session updating. Usage tracking is well covered, and webpage querying is present, but lifecycle is incomplete.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides browser automation capabilities using Playwright, enabling users to navigate websites, extract content, take screenshots, and interact with web pages through natural language prompts.
    15
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables browser automation and web scraping with multi-session management, supporting page navigation, element interaction, network request capture, and content extraction across multiple concurrent browser instances.
    14
    MIT

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/mcparmory/registry'

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