Thruact

Name the job, not the vendor. Routes a provider, fails over, catalog off the tool list.

Should I use this

Quality & Safety

B
Description quality
87%
Schema completeness
79%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'thruact_wallet' description lacks action verbin thruact_wallet

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~682Tokens (tool definitions)
~667 BTypical response size
Moderate attention impact (0.53% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "thruact": {
      "url": "https://thruact.com/mcp"
    }
  }
}

Remote endpoints

https://thruact.com/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢thruact_discover(limit, query)

Find capabilities for a job, with prices and measured reliability. Search first, execute second.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Max candidates",
      "type": "integer"
    },
    "query": {
      "description": "Natural language job",
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}
⚪thruact_act(capability, hedge, input, max_cost_usd, prefer)

Run a capability. Routes across providers and fails over automatically on provider faults. The reply's `route` says which providers were considered, what each scored, and why any were not used — including ones dropped for a missing credential.

Input Schema

{
  "type": "object",
  "properties": {
    "capability": {
      "type": "string"
    },
    "hedge": {
      "description": "Race a backup provider if the first is slower than usual. Cuts tail latency; you are charged for one answer.",
      "type": "boolean"
    },
    "input": {
      "type": "object"
    },
    "max_cost_usd": {
      "description": "Ceiling for this call. Narrows which providers may be used rather than refusing outright; if nothing fits, the error names the cheapest price that would.",
      "type": "number"
    },
    "prefer": {
      "description": "What to optimise for among the providers that fit the ceiling.",
      "enum": [
        "cheapest",
        "fastest"
      ],
      "type": "string"
    }
  },
  "required": [
    "capability"
  ]
}
⚪thruact_compare(capability, input, providers)

Ask every provider behind a capability the same question at once and report where their answers differ. Use it when the answer matters enough to want it corroborated. Costs more than act: every provider called is paid.

Input Schema

{
  "type": "object",
  "properties": {
    "capability": {
      "type": "string"
    },
    "input": {
      "type": "object"
    },
    "providers": {
      "description": "How many providers to ask. Omit for all of them.",
      "type": "integer"
    }
  },
  "required": [
    "capability"
  ]
}
⚪thruact_call(params, tool)

Run one specific tool by id. No failover.

Input Schema

{
  "type": "object",
  "properties": {
    "params": {
      "type": "object"
    },
    "tool": {
      "type": "string"
    }
  },
  "required": [
    "tool"
  ]
}
⚪thruact_wallet

Prepaid balance and recent charges.

Input Schema

{
  "type": "object",
  "properties": {}
}
⚪thruact_iq(capability)

Measured reliability per tool over the last 7 days.

Input Schema

{
  "type": "object",
  "properties": {
    "capability": {
      "type": "string"
    }
  }
}
🟡thruact_proxy(body, method, path, vendor)

Send an authenticated request to a third-party vendor the workspace has connected. The stored API key is injected server-side — you never see it. Give the vendor id from the directory (e.g. openai, sendgrid), an HTTP method, and a path on that vendor's own API. Use it to act through a connected vendor that is not a Thruact capability. Metered per call.

Input Schema

{
  "type": "object",
  "properties": {
    "body": {
      "description": "JSON request body for POST/PUT/PATCH",
      "type": "object"
    },
    "method": {
      "enum": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "type": "string"
    },
    "path": {
      "description": "Path on the vendor's API, e.g. /v1/models",
      "type": "string"
    },
    "vendor": {
      "description": "Vendor id from the directory",
      "type": "string"
    }
  },
  "required": [
    "vendor",
    "path"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools