Directory / Marketing, content & social
Ahel
Data and tools for AI agents from one catalog: company and people enrichment, SEO and SERP data, social media data, official EU business registers and sanctions lists; the price is shown before each call. OAuth sign-in at ahel.ai, free to start, pay per call. Endpoint: https://mcp.ahel.ai · Docs
Live Answered an MCP handshake without credentials and listed 10 tools.
- Category
- Marketing, content & social
- Transport
http- Source
- https://github.com/ahel-technologies/ahel
- Endpoint
https://mcp.ahel.ai- MCP Registry
ai.ahel/ahel- Reports itself as
- ahel 1.0.0
- Protocol
- 2025-06-18
- Tools
- 10
- Context cost
- about 3,112 tokens for the tool definitions (estimated at four characters per token)
- Tool definitions last changed
- no change seen since first check
- Handshake time
- 364 ms
- Repository
- 0 stars · last push 2026-11-02
- Last checked
- 2026-11-03 10:54:34 UTC
- Listed since
- 2026-11-03
Health and compatibility
| Endpoint reachable | Verified | Responded in 364 ms |
|---|---|---|
| MCP handshake (initialize) | Verified | Completed without credentials |
| Tool discovery (tools/list) | Verified | 10 tools listed |
| Authentication | Verified | None needed to connect |
| Protocol version | Verified | 2025-06-18 |
| Transport | Verified | Streamable HTTP |
| Capabilities declared | Verified | extensions, resources, tools |
Last checked . Verified means the check saw it happen; it says nothing about whether the server is safe.
Recent history
1 daily check so far. Green answered, violet asked for auth, red did not answer.
Set up in your client
Claude Code
Run this in a terminal:
claude mcp add --transport http ahel https://mcp.ahel.aiClaude Desktop
Open Settings → Connectors → Add custom connector and paste this URL:
https://mcp.ahel.aiOr bridge it through mcp-remote in claude_desktop_config.json (needs Node.js):
{
"mcpServers": {
"ahel": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.ahel.ai"
]
}
}
}Cursor
Or add it to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"ahel": {
"url": "https://mcp.ahel.ai"
}
}
}VS Code
Or add it to .vscode/mcp.json:
{
"servers": {
"ahel": {
"type": "http",
"url": "https://mcp.ahel.ai"
}
}
}Or from a terminal:
code --add-mcp '{"name": "ahel", "type": "http", "url": "https://mcp.ahel.ai"}'Windsurf
Add it to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"ahel": {
"serverUrl": "https://mcp.ahel.ai"
}
}
}Other clients
Most clients accept this shape. The endpoint is:
https://mcp.ahel.ai{
"mcpServers": {
"ahel": {
"type": "http",
"url": "https://mcp.ahel.ai"
}
}
}If it does not connect
- Restart the client after editing a config file, and keep keys out of files you commit.
- If the tools do not appear, open the client's MCP log: a 401 means the credentials were not accepted, and a timeout means the server did not answer.
Tools 10
Names, descriptions and input schemas exactly as the server returned them on 2026-11-03. This is the server author's own text. Nothing is run from this page. Labels such as read-only are declared by the server and are not verified. Raw JSON
balanceread-onlyThe workspace's prepaid balance in USD, what runs in flight hold, what settled runs used today and this month …
The workspace's prepaid balance in USD, what runs in flight hold, what settled runs used today and this month (shown to the Owner), any daily spend cap on the team API key this connection uses, and where to top up. Check it when a run is refused for funds, or before a job that will make many runs. Free; changes nothing. NOT for: the price of one run, which is capability_inspect.
Takes no parameters.
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "balance",
"arguments": {}
}
}capability_inspectread-onlyRead one task or provider tool from Ahel's catalog by its id: its exact inputs (Ahel's own contract, or the …
Read one task or provider tool from Ahel's catalog by its id: its exact inputs (Ahel's own contract, or the published reference input when Ahel has none), its status and exact reason, Ahel's price per provider (Unknown when Ahel has no rate), for a temporarily unavailable item the market prices seen elsewhere, for comparison, and the exact run_capability call when it can run. With arguments it also prices that exact run before anything runs: Ahel's quote, the most it may cost, the amount a run would reserve and whether the balance covers it; nothing is reserved, charged or started. Free; changes nothing. NOT for: finding ids, which is capability_search, or running it, which is run_capability.
| Parameter | Type | Description | |
|---|---|---|---|
id | string | required | A task id or tool id from capability_search. |
arguments | object | optional | Optional: the run's inputs, by name, to price that exact run (a quote only; nothing runs). |
max_items | number | optional | With arguments: most rows to price for, 1-100. Default 10. |
timeout_seconds | number | optional | With arguments: longest the run may take, 1-180 seconds. Default: the provider's own (60, more for slow sources). |
endpoint_ids | string[] | optional | With arguments: price the run on these providers only (endpoint ids from this answer). |
exclude_endpoint_ids | string[] | optional | With arguments: price the run without these providers. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "capability_inspect",
"arguments": {
"id": "..."
}
}
}capability_run_statusread-onlyWithout execution_id: the paid data capabilities this workspace can run, each with its providers and exact …
Without execution_id: the paid data capabilities this workspace can run, each with its providers and exact prices. With execution_id: that run's state, attempts and exact cost, settled once in the ledger when final; with results true, its rows and provenance (include_raw true adds the provider's own answer). Generated images and audio come as a signed link (media_url, valid for days) with their type and size; a small one is also attached as an image or audio block. A long result answers as many rows as fit and says the offset that reads the rest. NOT for: finding a task or tool to run, which is capability_search.
| Parameter | Type | Description | |
|---|---|---|---|
execution_id | string | optional | The id run_capability answered. |
results | boolean | optional | With execution_id: include the rows. |
include_raw | boolean | optional | With results: also include the winning provider's own answer (raw) and the normalised output. Large and repeats the rows; leave it out unless the rows lack a field you need. |
offset | number | optional | With results: the first row to answer (0-based), from next_offset when a long result did not fit in one answer. Default 0. |
full_text | boolean | optional | With results: answer long text values whole. By default a result of several rows cuts each text value at 4000 characters and lists the cut fields in that row's truncated_fields. |
max_items | number | optional | With results: the max_items the run was started with, so the answer can say when the rows stopped at that limit. run_capability's next names it. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "capability_run_status",
"arguments": {}
}
}capability_searchread-onlySearch Ahel's catalog of data tasks and provider tools by words, a task id or a tool id: company and people …
Search Ahel's catalog of data tasks and provider tools by words, a task id or a tool id: company and people enrichment, SEO, social, ads, e-commerce, reviews, AI generation, market and public data. Each result has its genuine task id or tool id, its platform, its status (ready, needs_connection, coming_soon meaning temporarily unavailable because Ahel has no provider for it yet, or unavailable while the run service is down) with the exact reason; a temporarily unavailable result may carry a market price seen elsewhere, for comparison. The same catalog, ids and statuses as the Catalog page on ahel.ai. Describe the job in plain words; results are ranked by how well they fit. When nothing fits it answers verdict none with the three nearest items: then call catalog_request. Free; changes nothing. NOT for: one item's exact inputs and prices, which is capability_inspect, or the team's own tools, which is my_tools.
| Parameter | Type | Description | |
|---|---|---|---|
query | string | optional | Words to match, or an exact task id (companies.enrich) or tool id. |
platform | string | optional | Optional platform id (companies, google, image-gen): only its items; with no query, its whole shelf. |
kind | string | optional | Optional: only tasks or only provider tools. One of: task, tool |
status | string | optional | Optional: only items in this state. One of: ready, needs_connection, coming_soon, unavailable |
limit | number | optional | How many results, 1-50. Default 10. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "capability_search",
"arguments": {}
}
}catalog_requestcan modifyAsk Ahel to add a data task or provider tool the catalog does not have yet: call it when capability_search …
Ask Ahel to add a data task or provider tool the catalog does not have yet: call it when capability_search answers verdict none and none of its nearest items fits. Give what you need in plain words, an example input, and the most you would pay for one call. Answers a request id; asking again for the same thing adds to that request instead of making a new one. Free; runs nothing and charges nothing. NOT for: finding what already exists, which is capability_search.
| Parameter | Type | Description | |
|---|---|---|---|
what | string | required | What you need done, in plain words: the job, not a provider name. |
example_input | any | optional | Optional: one example input, as text or an object (a domain, a profile URL, a name). |
max_price_usd | number | optional | Optional: the most you would pay for one call, in USD. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "catalog_request",
"arguments": {
"what": "..."
}
}
}feedbackcan modifyRate one run or one catalog request of this workspace good or bad, with an optional note on what was right or …
Rate one run or one catalog request of this workspace good or bad, with an optional note on what was right or wrong (missing rows, wrong data, too slow). Ahel reads every rating to fix providers and the catalog. Free; changes nothing else. NOT for: reading a run's state or rows, which is capability_run_status.
| Parameter | Type | Description | |
|---|---|---|---|
id | string | required | An execution id from run_capability, or a request id from catalog_request. |
rating | string | required | good or bad. One of: good, bad |
note | string | optional | Optional: what was right or wrong, in a sentence or two. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "feedback",
"arguments": {
"id": "...",
"rating": "good"
}
}
}get_startedread-onlyHow to start with Ahel: call this when the person asks what Ahel is, what it can do or how to begin. Returns …
How to start with Ahel: call this when the person asks what Ahel is, what it can do or how to begin. Returns what Ahel is, how the prepaid balance works, the three steps to find, price and run any data task or provider tool, and ready example prompts. Reads only; changes nothing. NOT for: finding a data task or provider tool for a specific ask, which is capability_search.
Takes no parameters.
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "get_started",
"arguments": {}
}
}my_toolscan modifydestructiveexternal accessThis team's own tools: the APIs and MCP servers the team added on ahel.ai under Your own tools. Without tool, …
This team's own tools: the APIs and MCP servers the team added on ahel.ai under Your own tools. Without tool, lists each one with its tools, their inputs and the exact call. With tool ("<key>/<tool name>" from that list) and arguments, calls it with the team's saved credentials, which never enter the chat. NOT for: Ahel's catalog of data tasks and provider tools, which is capability_search. If the transport times out, do not resubmit the work: call again with the same ids and poll.
| Parameter | Type | Description | |
|---|---|---|---|
tool | string | optional | Optional: "<key>/<tool name>" from the list, to call that tool. Omit to list the team's own tools. |
arguments | object | optional | With tool: the tool's arguments, matching the inputs the list shows. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "my_tools",
"arguments": {}
}
}reviewcan modifyRate how useful one finished run of this workspace was, after you have used its result: useful, partly, …
Rate how useful one finished run of this workspace was, after you have used its result: useful, partly, not_useful, or not_sure when you cannot tell, with an optional reason about the result (missing rows, wrong data, stale). One review per run; reviewing it again replaces the earlier one. Ahel reads every review to rank and fix providers. Leave out private information, keys and raw rows. Free; changes nothing else. NOT for: a catalog request, or reporting something confusing or broken, which is feedback.
| Parameter | Type | Description | |
|---|---|---|---|
run_id | string | required | The execution id run_capability answered. |
usefulness | string | required | How useful the result was. One of: useful, partly, not_useful, not_sure |
reason | string | optional | Optional: why, in a sentence or two, about the result. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "review",
"arguments": {
"run_id": "...",
"usefulness": "useful"
}
}
}run_capabilitycan modifyexternal accessRun one paid data capability (company data, people and contact data and the like) through Ahel's provider …
Run one paid data capability (company data, people and contact data and the like) through Ahel's provider execution: it is quoted, the exact price is reserved from the workspace balance, and the run starts. Give id, a task id or tool id from capability_search: it runs only through the v2 capability Ahel's task map binds to it, and an item that is not ready is refused with its exact reason before anything is quoted. It then waits up to wait_seconds (default 20, at most 50; 0 answers at once): when the run finishes in that time, this same answer has its state, exact cost and rows, and generated images and audio as links; otherwise it answers the execution id, and capability_run_status reads the run. Data collection only: a capability that writes or has a side effect is refused. Ahel picks the provider unless endpoint_ids pins one; exclude_endpoint_ids leaves providers out. Give idempotency_key so a retry after a lost answer is safe: the same key answers the same run, with no new charge. Give tag (such as a customer name) to see usage and cost by tag in Activity. NOT for: the team's own tools, which is my_tools.
| Parameter | Type | Description | |
|---|---|---|---|
id | string | optional | A task id or tool id from capability_search or capability_inspect. |
capability_id | string | optional | Instead of id: a v2 capability id from capability_run_status (no execution_id). |
arguments | object | required | The capability's inputs, by name. |
max_items | number | optional | Most rows to collect, 1-100. Default 10. |
timeout_seconds | number | optional | Longest the run may take, 1-180 seconds. Default: the provider's own (60, more for slow sources). |
endpoint_ids | string[] | optional | Optional: run only on these providers, by the endpoint ids capability_inspect lists. Leave it out to let Ahel pick (the default). |
exclude_endpoint_ids | string[] | optional | Optional: never use these providers, by the endpoint ids capability_inspect lists. Ahel picks among the rest. |
wait_seconds | number | optional | Optional: how long to wait for the run to finish and answer its rows here, 0-50 seconds. Default 20; 0 answers the execution id at once. |
idempotency_key | string | optional | Optional: your own key for this run, 8 to 200 letters, digits, dots, underscores, colons or hyphens. Sending the same call again with the same key answers the same run with no new charge; the same key with different inputs is refused. |
tag | string | optional | Optional: a label for this run, such as the customer or project it is for: 1 to 64 lowercase letters, digits, dots, dashes or underscores. Activity shows runs and cost by tag. It stays in Ahel and is never sent to a provider. |
Example call (required arguments only, placeholder values):
{
"method": "tools/call",
"params": {
"name": "run_capability",
"arguments": {
"arguments": {}
}
}
}Resources 1
Ahel cardThe Ahel card: the result of one of the team's own tools.
Badge
Maintain this server? Put its live status in your README:
[](https://mcp.aianytime.net/s/ahel/)Edit this entry · Report a problem
More in Marketing, content & social
Checks record what a server answered, not whether it is safe. A listing is not a security audit; read a server's source and permissions before you connect it. Add a server · JSON · llms.txt · llms-full.txt
Browse: Agents, IDEs & developer tools · Search & discovery · Knowledge, memory & context · Media & generation · Security · Finance & markets · Marketing, content & social · Cloud, ops & data · Commerce, travel & logistics · Work & productivity · No account needed · Local servers