Skip to content

MCP Tool Reference

Authentication & Response Format

All MCP API calls require a JWT Token in the HTTP header:

http
Authorization: Bearer <your-jwt-token>

All tool executions use the endpoint POST /mcp/v1/tools/call. The HTTP response body returned by the server follows the standard platform wrapper format:

json
{
  "code": 200,
  "message": "success",
  "data": {
    "content": [
      {
        "type": "text",
        "text": "..." // JSON data string returned by the tool
      }
    ]
  },
  "timestamp": 1717507200000
}

For brevity, the Response Examples of each tool below show only the actual deserialized business JSON data from the data.content[0].text field.


testnet_query_assets

Query the asset list of a specified project.

Parameters:

ParameterTypeRequiredDescription
projectIdstringProject ID
assetTypestringAsset type: company, domain, sub_domain, ip, port, web, api, vul (defaults to ip)
limitintegerLimit of returned count, default 20, max 500

Request Example:

json
{
  "name": "testnet_query_assets",
  "arguments": {
    "projectId": "proj_001",
    "assetType": "sub_domain",
    "limit": 50
  }
}

Response Example:

json
[
  {
    "id": "sub_001",
    "subdomain": "api.example.com",
    "domain": "example.com",
    "ip": "192.168.1.1",
    "status": "ACTIVE",
    "projectId": "proj_001"
  }
]

testnet_get_asset_detail

Get complete details of a single asset.

Parameters:

ParameterTypeRequiredDescription
assetTypestringAsset type: company, domain, sub_domain, ip, port, web, api, vul
assetIdstringAsset ID

Request Example:

json
{
  "name": "testnet_get_asset_detail",
  "arguments": {
    "assetType": "sub_domain",
    "assetId": "sub_001"
  }
}

testnet_run_workflow

Execute a specified workflow.

Parameters:

ParameterTypeRequiredDescription
workflowIdstringWorkflow ID
targetstringScan target (domain name, IP, etc.)
assetTypestringAsset type: IP or DOMAIN (defaults to DOMAIN)

Request Example:

json
{
  "name": "testnet_run_workflow",
  "arguments": {
    "workflowId": "domain-recon-pipeline",
    "target": "example.com",
    "assetType": "DOMAIN"
  }
}

Response Example:

json
{
  "status": "triggered",
  "workflowId": "domain-recon-pipeline"
}

testnet_list_workflows

List available workflows.

Parameters:

ParameterTypeRequiredDescription
enabledbooleanWhether to return only enabled workflows; if true, only returns enabled workflows

Request Example:

json
{
  "name": "testnet_list_workflows",
  "arguments": {
    "enabled": true
  }
}

testnet_list_tools

List all available scanning tools in the system.

Parameters: None

Request Example:

json
{
  "name": "testnet_list_tools",
  "arguments": {}
}

testnet_run_tool

Execute a single tool (not through a workflow).

Parameters:

ParameterTypeRequiredDescription
toolNamestringTool name, e.g. subfinder
targetstringScan target (must have a corresponding IP or DOMAIN asset in the database)

Request Example:

json
{
  "name": "testnet_run_tool",
  "arguments": {
    "toolName": "subfinder",
    "target": "example.com"
  }
}

Response Example:

json
{
  "status": "task_created",
  "tool": "subfinder",
  "target": "example.com",
  "assetType": "DOMAIN",
  "assetId": "domain_001",
  "runId": "run_abc123",
  "taskIds": ["task_xyz789"],
  "createdCount": 1
}

testnet_get_task_status

Query task execution status.

Parameters:

ParameterTypeRequiredDescription
taskIdstringTask ID

Request Example:

json
{
  "name": "testnet_get_task_status",
  "arguments": {
    "taskId": "task_xyz789"
  }
}

Response Example:

json
{
  "taskId": "task_xyz789",
  "status": "COMPLETED"
}

testnet_list_projects

List all accessible projects for the current user.

Parameters: None

Request Example:

json
{
  "name": "testnet_list_projects",
  "arguments": {}
}

Released under the MIT License