AI SENSE Free Public Tools
REMOTE · AISENSEAPI.COM
66 public tools: semantic search, queues, inboxes, webhooks, approvals, DNS, images, PDF and more.
Available components
Last scanned (20 hours ago)
Scores higher than 88% of remote servers
Reachable. Last reached 16 Oct 2026.
Category Workflow Automation
Recent critical change
Authorization (9 Sept 2026). See the changelog before you install this server.
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security66
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (ack_agent_queue_job). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability80
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 10148 tokens (~147/item across 69 items; 66 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage89
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 60% of tool parameters carry a description.Partial
- Structured output schemas are declared (48% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 68 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 16 Oct 26 0
- Tool “encode_data” rewrote its description, which is the text the model reads security
- 12 Oct 26 0
- Tool “process_image” rewrote its description, which is the text the model reads security
- 10 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- 4 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “decide” rewrote its description, which is the text the model reads security
- Tool “encode_data” rewrote its description, which is the text the model reads security
- Schema quality: 8666 → 9901 ▼ functional
- Tool coverage: 53% → 48% ▼ functional
- New tool “html_markdown_convert” functional
- “decide” added an optional parameter “model” cosmetic
- “decide” reworded the description of “questions” cosmetic
- “decide” reworded the description of “state” cosmetic
- Tool “decide” changed its title: Decide from rules → Decide from rules or a model cosmetic
- Tool “encode_data” changed its title: Encode or decode Base64, Base32 or Base58 → Encode or decode Base64, Base32, Base58, hex, URL or HTML cosmetic
- 3 Oct 26 0
- Tool “hash_data” rewrote its description, which is the text the model reads security
- Tool “verify_hash” rewrote its description, which is the text the model reads security
- “verify_hash” added an optional parameter “algorithm” cosmetic
- 1 Oct 26 +3
- Stability: fail → pass ▲ security
- 30 Sept 26 −4
- Stability: pass → fail ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- New tool “cancel_webhook_schedule”, which the server declares destructive security
- Tool coverage: 71% → 58% ▼ functional
- Tool coverage: 100% → 53% ▼ functional
- Schema quality: 5138 → 8477 ▼ functional
- New tool “convert_timestamp” functional
- New tool “create_qr_code” functional
- New tool “crypto_wallet” functional
- New tool “decide” functional
- New tool “encode_data” functional
- New tool “generate_random” functional
- New tool “hash_data” functional
- New tool “html_to_pdf” functional
- New tool “json_check” functional
- New tool “json_csv_convert” functional
- New tool “jwt_token” functional
- New tool “list_timezones” functional
- New tool “lookup_network” functional
- New tool “match_tables” functional
- New tool “process_image” functional
- New tool “read_qr_code” functional
- New tool “read_stored_file” functional
- New tool “read_webhook_schedule” functional
- New tool “schedule_webhook” functional
- New tool “service_health” functional
- New tool “simulate_failure” functional
- New tool “slugify_text” functional
- New tool “store_file” functional
- New tool “time_formats” functional
- New tool “validate_email” functional
- New tool “validate_value” functional
- New tool “verify_hash” functional
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 16 Oct 2026 · Probed https://aisenseapi.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.aisenseapi.com | CN=YE2,O=Let's Encrypt,C=US | 5 Oct 2026 | 3 Jan 2027 | ECDSA 256 | ECDSA-SHA384 | 57300129916b572d94e3100af37667b0cb8 |
| SANs: *.aisenseapi.com, aisenseapi.com | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of aisenseapi.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| aisenseapi.com. | present | 9824, 9824 | 15, 15 | Verified |
| aisenseapi.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000 |
| x-content-type-options | nosniff |
| referrer-policy | no-referrer |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://aisenseapi.com/mcp | Verified | 200 | |
| http (plaintext) | http://aisenseapi.com/mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
read_temporary_data Read temporary data ~157
Fetch back a JSON value that store_temporary_data saved earlier, in this session or in another one. Returns the value exactly as it was stored. Fails if the id is unknown or if the 24 hour lifetime has already passed, so treat a failure as expired or never written rather than as a temporary fault worth retrying. sha256_hash is the digest of the stored bytes and bytes their length, the same values store_temporary_data reported. A value stored with max_downloads answers downloads_left, how many reads remain, and is gone once they are taken. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| storage_id | string | yes | The UUID that store_temporary_data returned. |
| Name | Type | Req | Description |
|---|---|---|---|
| bytes | integer | yes | – |
| data | – | yes | – |
| downloads_left | integer | – | – |
| expire_timestamp | integer | yes | – |
| sha256_hash | string | yes | – |
| storage_id | string | yes | – |
No examples provided.
read_webhook_capture Read webhook capture ~140
Check whether anything has been sent to a capture URL yet, and read it. The status field is pending or captured. Pending is the ordinary answer before the sender fires and is not a failure. Set wait_seconds from 1 to 25 to wait efficiently for the first request. The call returns early when the capture changes. Zero reads the current state immediately. Unknown and expired IDs fail. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| capture_id | string | yes | The UUID that create_webhook_capture returned. |
| wait_seconds | integer | – | Wait up to this many seconds for a request. Zero returns immediately. |
| Name | Type | Req | Description |
|---|---|---|---|
| capture_id | string | yes | – |
| captured_at_datetime | string|null | yes | – |
| captured_at_timestamp | integer|null | yes | – |
| created_at_datetime | string | yes | – |
| created_at_timestamp | integer | yes | – |
| expire_datetime | string | yes | – |
| expire_timestamp | integer | yes | – |
| ok | boolean | yes | – |
| request | object|null | yes | – |
| status | string | yes | – |
| wait_reason | string | yes | – |
| waited_seconds | number | yes | – |
No examples provided.
read_webhook_schedule Read a scheduled webhook ~83
Read a scheduled webhook: its status, attempts and, after it fired, the HTTP status and an excerpt of the answer. wait_seconds, up to 25, waits for the status to change before answering. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| schedule_id | string | yes | – |
| wait_seconds | integer | – | – |
No output schema declared.
No examples provided.
release_agent_queue_job Release agent queue job ~75
Return a claimed job to pending using the worker token and its current receipt. On the fifth claim it becomes failed. The receipt is invalidated. Stale receipts conflict.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | yes | – |
| queue_id | string | yes | – |
| receipt | string | yes | – |
| worker_token | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| expire_timestamp | integer | yes | – |
| job | object | yes | – |
| ok | boolean | yes | – |
| queue_id | string | yes | – |
No examples provided.
release_lease Release lease ~160
Give up a lease before its TTL ends so another agent can acquire the work. Use it when abandoning work without a reusable result. The secret owner token is required. No authentication is required.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Work identity. With a namespace use 1 to 128 URL-safe ASCII characters, starting with a letter or digit. Without one use a caller-generated secret of 32 to 200 ASCII characters from A-Z, a-z, 0-9, do… |
| namespace | string | – | Optional 256-bit namespace from create_lease_namespace. Keep it secret. |
| owner_token | string | yes | Secret owner token returned by acquire_lease. |
| Name | Type | Req | Description |
|---|---|---|---|
| absolute_expires_at | string | – | – |
| absolute_expires_at_timestamp | integer | – | – |
| completed_at | string | – | – |
| completed_at_timestamp | integer | – | – |
| error | string | – | – |
| fencing_token | integer | – | – |
| lease_expires_at | string | – | – |
| lease_expires_at_timestamp | integer | – | – |
| ok | boolean | yes | – |
| owner_token | string | – | – |
| result | – | – | – |
| retry_after_seconds | integer | – | – |
| status | string | yes | – |
| ttl_seconds | integer | – | – |
No examples provided.
renew_agent_queue_job Renew agent queue job ~110
Move the active claim deadline using the worker token and current receipt. Visibility accepts 30-900 seconds, defaults to 60 seconds and is capped by the original queue expiry. A stale or expired receipt is a conflict. Queue lifetime is never extended.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | yes | – |
| queue_id | string | yes | – |
| receipt | string | yes | – |
| visibility_timeout | integer | – | Claim visibility in seconds, capped by the fixed queue expiry. |
| worker_token | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| expire_timestamp | integer | yes | – |
| job | object | yes | – |
| ok | boolean | yes | – |
| queue_id | string | yes | – |
No examples provided.
renew_lease Renew lease ~177
Extend a lease that this caller still owns. Use it before the current TTL ends when work is still running. The owner token is required and must stay secret. Renewal cannot move the absolute 24 hour limit. No authentication is required.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | Work identity. With a namespace use 1 to 128 URL-safe ASCII characters, starting with a letter or digit. Without one use a caller-generated secret of 32 to 200 ASCII characters from A-Z, a-z, 0-9, do… |
| namespace | string | – | Optional 256-bit namespace from create_lease_namespace. Keep it secret. |
| owner_token | string | yes | Secret owner token returned by acquire_lease. |
| ttl_seconds | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| absolute_expires_at | string | – | – |
| absolute_expires_at_timestamp | integer | – | – |
| completed_at | string | – | – |
| completed_at_timestamp | integer | – | – |
| error | string | – | – |
| fencing_token | integer | – | – |
| lease_expires_at | string | – | – |
| lease_expires_at_timestamp | integer | – | – |
| ok | boolean | yes | – |
| owner_token | string | – | – |
| result | – | – | – |
| retry_after_seconds | integer | – | – |
| status | string | yes | – |
| ttl_seconds | integer | – | – |
No examples provided.
schedule_webhook Schedule a webhook ~158
Schedule an HTTP POST of a JSON payload to a public URL: once, after delay_seconds or at the Unix time fire_at, 5 seconds to 24 hours ahead, or repeatedly every 60 to 86400 seconds until 24 hours after creation. The URL must resolve to a public address on port 80 or 443. The answer has schedule_id, which reads and cancels the job and should be kept private. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| delay_seconds | integer | – | – |
| every | integer | – | – |
| fire_at | integer | – | – |
| payload | – | – | Any JSON, at most 32 KB. Defaults to {}. |
| url | string | yes | – |
No output schema declared.
No examples provided.
service_health Check the service ~43
Check that the AI SENSE service answers. Returns status ok and the server time with microseconds. No API key, no account and no sign up: call it directly.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
shorten_url Shorten URL ~121
Turn a long URL into a short 307.fi link that redirects to it. Use it when a URL has to be typed, read aloud, pasted into a message with a length limit, or put in front of a person. No API key, no account and no sign up: call it directly. The link stops working 24 hours after creation, so do not use it for anything that must survive longer than a day; it is for handoffs inside a task, not for publishing.
| Name | Type | Req | Description |
|---|---|---|---|
| long_url | string | yes | HTTP or HTTPS URL to shorten. |
| Name | Type | Req | Description |
|---|---|---|---|
| expire_timestamp | integer | yes | – |
| short_url | string | yes | – |
No examples provided.
simulate_failure Simulate a failure ~128
Get a chosen failure on purpose, to test how an agent or client handles it: an HTTP status from 200 to 504, an HTML error page (html), an empty body (empty) or JSON labelled as text (wrongtype), after an optional delay of up to 10 seconds. The result reports the status, content type, headers and body the REST endpoint sent, and is an error result for statuses of 400 and above. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| delay_ms | integer | – | – |
| outcome | string | yes | – |
No output schema declared.
No examples provided.
slugify_text Make a URL slug ~46
Turn text into a lowercase URL slug with words joined by hyphens. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | – |
No output schema declared.
No examples provided.
store_file Store a file ~209
Store a file given as base64 for 24 hours, at a link that anyone who has it can open. Answers storage_id and storage_url. Use it to hand a file to another tool, such as an image to process_image or read_qr_code. Never store secrets or personal data. max_downloads, 1 to 100, removes the file after that many fetches; the answer then carries downloads_max and downloads_left, and a spent storage_id answers that the object is gone. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| data_base64 | string | yes | The file as standard base64, at most about 190 KB of file through MCP. For a larger file, store it with REST POST /services/v1/storage first and pass storage_id. |
| max_downloads | integer | – | Optional. How many times the file may be fetched before it is removed, 1 to 100. Without it the file lives 24 hours. |
No output schema declared.
No examples provided.
store_temporary_data Store temporary data ~293
Put any JSON value somewhere another process can fetch it, and get back a storage_id plus a public read_url. Use it to hand a result to a different agent, a script, a webhook receiver or a later run, when there is no shared filesystem and no database between you. No API key, no account and no sign up: call it directly. Anyone holding the URL can read it, so never store secrets, credentials or personal data. The value disappears 24 hours after it is written. Read it back with read_temporary_data, passing the storage_id. The answer also carries sha256_hash, the digest of the stored bytes, and bytes, their length, so a receiver can tell it got what you sent. The same object over REST calls the link storage_url and serves it with that digest as its ETag. max_downloads, 1 to 100, removes the value after that many reads; the answer then carries downloads_max and downloads_left, and a spent storage_id answers that the object is gone.
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | The JSON value to store. Any type: object, array, string, number, boolean or null. Readable by anyone with the URL, so no secrets. |
| max_downloads | integer | – | Optional. How many times the value may be read before it is removed, 1 to 100. Without it the value lives 24 hours. |
| Name | Type | Req | Description |
|---|---|---|---|
| bytes | integer | yes | – |
| downloads_left | integer | – | – |
| downloads_max | integer | – | – |
| expire_timestamp | integer | yes | – |
| read_url | string | yes | – |
| sha256_hash | string | yes | – |
| storage_id | string | yes | – |
No examples provided.
time_formats Current time in several formats ~111
The current time in several formats at once: a Unix timestamp, Unix time with microseconds, an ISO 8601 date and time at an optional UTC offset, and Swatch Internet Time. For a named timezone such as Europe/Oslo use get_current_time. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| offset | string | – | UTC offset as a sign and four digits, from -1200 to +1200, for example +0200 or -0530. |
No output schema declared.
No examples provided.
update_dns_name Update a temporary DNS name ~208
Change the address a temporary DNS name points at. Needs the dns_token from create_dns_name. Use it when the machine behind the name moved and you would rather keep the name than hand out a new one. The expiry does not move: the name still disappears 24 hours after it was created. One change per name per 10 seconds.
| Name | Type | Req | Description |
|---|---|---|---|
| dns_token | string | yes | The dns_token from create_dns_name. It is shown once and never again. |
| ip | string | – | A public unicast IPv4 or IPv6 address. Private, loopback, link-local and multicast ranges are refused. The address is required and never taken from the caller, because the caller is usually not the m… |
| slug | string | yes | The slug the service assigned, without the aisense- prefix and without the zone. |
| ttl | integer | – | Seconds. 60 is the only value on the menu, so leave it out unless you want to be explicit. |
| Name | Type | Req | Description |
|---|---|---|---|
| created_at_timestamp | integer | – | – |
| expire_at | string | yes | – |
| expire_timestamp | integer | yes | – |
| ip | string | yes | – |
| name | string | yes | – |
| nameservers | array | yes | – |
| ok | boolean | yes | – |
| record | string | yes | – |
| serial | integer | – | – |
| slug | string | yes | – |
| ttl | integer | yes | – |
No examples provided.
validate_email Check an email address ~78
Check an email address: its syntax, whether its domain has MX records, listing up to five, and whether the domain has an address record. The mail server is not contacted, so a good answer does not prove that the mailbox exists. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | – |
No output schema declared.
No examples provided.
validate_value Validate a number or code ~106
Validate an IBAN, a payment card number (Luhn), a Norwegian organisation number (orgnr), a Norwegian bank account number (kontonummer) or a phone number, with the checksum and the normalized form where the type has them. Nothing is stored or looked up. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| type | string | yes | – |
| value | string|integer | yes | The value to check. Spaces and dashes are allowed. |
No output schema declared.
No examples provided.
verify_hash Verify a hash ~209
Check that text matches a hash. Name the algorithm when you know it. Without it the algorithm follows from the hash: 8, 32, 40, 64 or 128 hex characters mean CRC32, MD5, SHA-1, SHA-256 or SHA-512, and an integer means CRC32 in decimal; whirlpool, sha3_256, sha3_512, blake2b and blake3 share those lengths and must be named. For argon2id, bcrypt and scrypt the hash is the salted string those algorithms answered; the cost is read from it and must be within what this service produces. Answers match and algorithm, with computed for digests and params for password hashes. No API key, no account and no sign up: call it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| algorithm | string | – | Optional for the first five, required for the rest. |
| data | string | yes | – |
| hash | string|integer | yes | The hash to compare against. |
No output schema declared.
No examples provided.
How do I install the AI SENSE Free Public Tools MCP server?
AI SENSE Free Public Tools is a hosted endpoint at https://aisenseapi.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · aisenseapi.com
claude mcp add --transport http com-aisenseapi-free-public-tools 'https://aisenseapi.com/mcp'
What is the AI SENSE Free Public Tools MCP server?
AI SENSE Free Public Tools is an MCP server listed in the public MCP registry as com.aisenseapi/free-public-tools. 66 public tools: semantic search, queues, inboxes, webhooks, approvals, DNS, images, PDF and more. This page covers its hosted endpoint (https://aisenseapi.com/mcp).
Is the AI SENSE Free Public Tools MCP server safe to use?
AI SENSE Free Public Tools scores 82 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the AI SENSE Free Public Tools MCP server expose?
AI SENSE Free Public Tools exposes 66 tools: get_current_time, generate_uuid, shorten_url, store_temporary_data, read_temporary_data, and 61 more. Their descriptions and schemas cost roughly 9,621 tokens of context every time the server is loaded.
Does the AI SENSE Free Public Tools MCP server require authentication?
No. We connected to AI SENSE Free Public Tools without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the AI SENSE Free Public Tools MCP server still maintained?
AI SENSE Free Public Tools is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.