{"apiVersion":"v1","directorySlug":"aisenseapi-mcp-2cf9c7efd4","title":"Welcome to aisenseapi.com - 1790435808","description":null,"pageUrl":"https://www.mcpbundles.com/skills/aisenseapi-mcp-2cf9c7efd4","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://aisenseapi.com/mcp","hostedMcpUrl":null,"toolCount":32,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.aisenseapi/aisenseapi-mcp-2cf9c7efd4","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_current_time","description":"Get the true current date and time, as an ISO 8601 string and a Unix timestamp, for any timezone. Use this whenever the actual present moment matters - stamping a record, computing an age or a deadline, deciding whether something has expired - because a language model has no clock and will otherwise guess a date from its training data. No API key, no account and no sign up: call it directly. The timezone parameter accepts an IANA name or a fixed UTC offset and defaults to UTC.","inputSchema":{"type":"object","properties":{"timezone":{"type":"string","default":"UTC"}},"additionalProperties":false},"title":"Get current time","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_current_time","displayName":"Get current time"},{"name":"generate_uuid","description":"Generate one random RFC 4122 version 4 UUID. Use it when you need an identifier that will not collide with anything else - an idempotency key, a correlation id across systems, a filename - rather than inventing a string yourself, which is not random and tends to repeat across runs. Takes no parameters and returns a single lowercase hyphenated UUID. No API key, no account and no sign up: call it directly.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"title":"Generate UUID","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"generate_uuid","displayName":"Generate UUID"},{"name":"shorten_url","description":"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.","inputSchema":{"type":"object","required":["long_url"],"properties":{"long_url":{"type":"string","format":"uri","maxLength":4096}},"additionalProperties":false},"title":"Shorten URL","logicalName":"shorten_url","displayName":"Shorten URL","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"store_temporary_data","description":"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,","inputSchema":{"type":"object","required":["data"],"properties":{"data":{}},"additionalProperties":false},"title":"Store temporary data","logicalName":"store_temporary_data","displayName":"Store temporary data","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"read_temporary_data","description":"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. No API key, no account and no sign up: call it directly.","inputSchema":{"type":"object","required":["storage_id"],"properties":{"storage_id":{"type":"string","format":"uuid"}},"additionalProperties":false},"title":"Read temporary data","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_temporary_data","displayName":"Read temporary data"},{"name":"create_webhook_capture","description":"Create a throwaway URL that records the next HTTP request anyone sends to it, headers and body included. Use it to see what a webhook provider, a form or a third party service actually transmits, instead of trusting their documentation, and to prove that an integration fired at all. No API key, no account and no sign up: call it directly. The pending capture is stored before this call returns. Optional notify_url receives one small completion signal with a result URL after the first request arri","inputSchema":{"type":"object","properties":{"notify_url":{"type":"string","format":"uri","maxLength":2048}},"additionalProperties":false},"title":"Create webhook capture","logicalName":"create_webhook_capture","displayName":"Create webhook capture","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"read_webhook_capture","description":"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.","inputSchema":{"type":"object","required":["capture_id"],"properties":{"capture_id":{"type":"string","format":"uuid"},"wait_seconds":{"type":"integer","default":0,"maximum":25,"minimum":0}},"additionalProperties":false},"title":"Read webhook capture","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_webhook_capture","displayName":"Read webhook capture"},{"name":"create_human_approval","description":"Put a decision in front of one to twenty people. Use one respondent for a normal approval, or several when every invited person should answer through a separate bearer form link. Group results contain counts, a tally and anonymous numbered responses. Optional notify_url receives one small signal after the final answer. It does not contain the answers. Forms expire after 24 hours. No API key, account or login is required.","inputSchema":{"type":"object","required":["title"],"properties":{"options":{"type":"array","items":{"type":"string","maxLength":100},"default":["Approve","Reject"],"maxItems":10,"minItems":2},"allow_note":{"type":"boolean","default":true},"notify_url":{"type":"string","format":"uri","maxLength":2048},"respondents":{"type":"integer","default":1,"maximum":20,"minimum":1}},"additionalProperties":false},"title":"Request human approval","logicalName":"create_human_approval","displayName":"Request human approval","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"read_human_approval","description":"Check whether the person has answered a form from create_human_approval, and read the answer. For a group, partial means at least one person has answered and answered means all form links are complete. The group view contains counts, a tally and anonymous respondent numbers, never form tokens or notification settings. Set wait_seconds from 1 to 25 to wait for a change, or zero to read immediately. No API key, account or sign up is required.","inputSchema":{"type":"object","required":["action_id"],"properties":{"action_id":{"type":"string","format":"uuid"},"wait_seconds":{"type":"integer","default":0,"maximum":25,"minimum":0}},"additionalProperties":false},"title":"Read human approval","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_human_approval","displayName":"Read human approval"},{"name":"create_agent_wake","description":"Create a durable MCP task that completes when a webhook arrives, a person answers a form or a chosen time is reached. Use it when an agent must pause and continue after an outside event without holding one HTTP request open. The task lasts from 60 seconds to 24 hours. Webhook bodies and human answers are readable by anyone holding the task URL, so do not send secrets, credentials or personal data.","inputSchema":{"type":"object","required":["event_type"],"properties":{"options":{"type":"array","items":{"type":"string","maxLength":100},"default":["Approve","Reject"],"maxItems":10,"minItems":2},"wake_at":{"type":"integer"},"allow_note":{"type":"boolean","default":true},"event_type":{"enum":["webhook","human","time"],"type":"string"},"delay_seconds":{"type":"integer","minimum":1},"timeout_seconds":{"type":"integer","default":86400,"maximum":86400,"minimum":60}},"additionalProperties":false},"title":"Wait for an event","logicalName":"create_agent_wake","displayName":"Wait for an event","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_heartbeat","description":"Create a deadline monitor for a job, device or agent that should keep checking in. Call ping_heartbeat before the expected interval plus grace period ends. One missed deadline calls a public HTTP or HTTPS webhook or wakes an active Agent Wake webhook task. The monitor lasts at most 24 hours from creation, and pings cannot extend that limit. The returned heartbeat ID and URLs are bearer secrets. No authentication is required.","inputSchema":{"type":"object","required":["expect_every_seconds","grace_seconds","on_miss"],"properties":{"on_miss":{"type":"object","oneOf":[{"required":["url"],"properties":{"url":{"type":"string","format":"uri","maxLength":2048},"payload":{}},"additionalProperties":false},{"required":["wake_task_id"],"properties":{"wake_task_id":{"type":"string","format":"uuid"}},"additionalProperties":false}]},"grace_seconds":{"type":"integer","maximum":86400,"minimum":0},"expect_every_seconds":{"type":"integer","maximum":86400,"minimum":60}},"additionalProperties":false},"title":"Create heartbeat","logicalName":"create_heartbeat","displayName":"Create heartbeat","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"read_heartbeat","description":"Read one heartbeat immediately. Use it to inspect whether the monitor is armed, missed, fired or expired, whether it is running late, and its next deadline. This does not wait for a state change. The heartbeat ID is a 256-bit bearer secret. No authentication is required.","inputSchema":{"type":"object","required":["heartbeat_id"],"properties":{"heartbeat_id":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"additionalProperties":false},"title":"Read heartbeat","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_heartbeat","displayName":"Read heartbeat"},{"name":"ping_heartbeat","description":"Record a check-in for an armed heartbeat and move its next expected deadline. Use it after successful work or from a liveness loop. A ping does not extend the absolute 24 hour lifetime. The heartbeat ID is a bearer secret. No authentication is required.","inputSchema":{"type":"object","required":["heartbeat_id"],"properties":{"heartbeat_id":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"additionalProperties":false},"title":"Ping heartbeat","logicalName":"ping_heartbeat","displayName":"Ping heartbeat","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_lease_namespace","description":"Create a random private namespace before several agents coordinate work using short readable keys. The namespace is a bearer secret and is returned once. Share it only with the cooperating agents. This operation stores no lease and needs no authentication.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"title":"Create lease namespace","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"create_lease_namespace","displayName":"Create lease namespace"},{"name":"acquire_lease","description":"Claim one unit of work so concurrent agents do not perform it twice. The first writer receives an owner token and a monotonic fencing token. A later caller receives held, conflict or a reusable completed result. Contention is a normal result. Use a private namespace, or supply a high-entropy unscoped key. No authentication is required.","inputSchema":{"type":"object","required":["key"],"properties":{"key":{"type":"string","maxLength":200,"minLength":1},"namespace":{"type":"string","pattern":"^ns_[A-Za-z0-9_-]{43}$"},"fingerprint":{"type":"string","maxLength":512},"ttl_seconds":{"type":"integer","default":60,"maximum":86400,"minimum":1}},"additionalProperties":false},"title":"Acquire lease","logicalName":"acquire_lease","displayName":"Acquire lease","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"renew_lease","description":"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.","inputSchema":{"type":"object","required":["key","owner_token"],"properties":{"key":{"type":"string","maxLength":200,"minLength":1},"namespace":{"type":"string","pattern":"^ns_[A-Za-z0-9_-]{43}$"},"owner_token":{"type":"string","pattern":"^own_[A-Za-z0-9_-]{43}$"},"ttl_seconds":{"type":"integer","default":60,"maximum":86400,"minimum":1}},"additionalProperties":false},"title":"Renew lease","logicalName":"renew_lease","displayName":"Renew lease","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"release_lease","description":"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.","inputSchema":{"type":"object","required":["key","owner_token"],"properties":{"key":{"type":"string","maxLength":200,"minLength":1},"namespace":{"type":"string","pattern":"^ns_[A-Za-z0-9_-]{43}$"},"owner_token":{"type":"string","pattern":"^own_[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Release lease","logicalName":"release_lease","displayName":"Release lease","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"complete_lease","description":"Finish owned work and save a reusable JSON result for later callers with the same identity and fingerprint. The result is limited to 32 KB and secret-shaped fields are redacted. Do not store secrets or personal data. The owner token is required. No authentication is required.","inputSchema":{"type":"object","required":["key","owner_token","result"],"properties":{"key":{"type":"string","maxLength":200,"minLength":1},"result":{},"namespace":{"type":"string","pattern":"^ns_[A-Za-z0-9_-]{43}$"},"owner_token":{"type":"string","pattern":"^own_[A-Za-z0-9_-]{43}$"}},"additionalProperties":false},"title":"Complete lease","logicalName":"complete_lease","displayName":"Complete lease","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_agent_inbox","description":"Create a private email inbox that lives for 24 hours, so an agent can receive a confirmation mail, a verification code or a one time link while it works. The call returns two identifiers and they are not interchangeable. The address is public by construction: it travels in mail headers, bounces and sender logs, and anyone who has it can send mail to the inbox, so give it to the site or person who must write to you. The inbox_id is a UUID and it is the only credential that reads the inbox. Keep i","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"title":"Create agent inbox","logicalName":"create_agent_inbox","displayName":"Create agent inbox","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"read_agent_inbox","description":"Read the mail that has arrived in an inbox from create_agent_inbox. Each message carries the sender, the subject, the arrival time in UTC, the cleaned text, any standalone 4 to 8 digit codes found in that text and any public http or https links. Attachments and raw headers are not stored. Set wait_seconds from 1 to 25 to wait for the next message, or zero to read immediately. An empty inbox is the ordinary answer before mail arrives and is not a failure. When truncated is true, at least one whol","inputSchema":{"type":"object","required":["inbox_id"],"properties":{"inbox_id":{"type":"string","format":"uuid"},"wait_seconds":{"type":"integer","default":0,"maximum":25,"minimum":0}},"additionalProperties":false},"title":"Read agent inbox","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_agent_inbox","displayName":"Read agent inbox"},{"name":"create_agent_queue","description":"Create a small temporary pull queue for cooperating agents. Its fixed 24 hour lifetime cannot be extended. Returns separate read, write and worker bearer tokens once. Keep them secret and share only the role needed. Maximum 100 jobs over the queue lifetime, 16 KiB per JSON payload, 5 claims per job and 20 queues per client IP in 24 hours. The server does not execute jobs. No account or API key is required.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"title":"Create agent queue","logicalName":"create_agent_queue","displayName":"Create agent queue","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"read_agent_queue","description":"Read queue metadata and pending, claimed, completed and failed counts using the read token. Does not list payloads, disclose role tokens or extend the fixed expiry.","inputSchema":{"type":"object","required":["queue_id","read_token"],"properties":{"queue_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"read_token":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"additionalProperties":false},"title":"Read agent queue","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_agent_queue","displayName":"Read agent queue"},{"name":"enqueue_agent_queue_job","description":"Add a JSON job using the write token and a stable job_key. The same key and payload return the original job. Changing the payload for that key is a conflict. Payloads are limited to 16 KiB encoded JSON and must contain no secrets or personal data. The 100-job lifetime limit includes completed and failed jobs.","inputSchema":{"type":"object","required":["queue_id","write_token","job_key","payload"],"properties":{"job_key":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$","maxLength":64,"minLength":1},"payload":{},"queue_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"write_token":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"additionalProperties":false},"title":"Enqueue agent queue job","logicalName":"enqueue_agent_queue_job","displayName":"Enqueue agent queue job","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"read_agent_queue_job","description":"Read one known job, its JSON payload and status using the read token. The active claim receipt and role tokens are never returned by this operation.","inputSchema":{"type":"object","required":["queue_id","job_id","read_token"],"properties":{"job_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"queue_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"read_token":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"additionalProperties":false},"title":"Read agent queue job","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_agent_queue_job","displayName":"Read agent queue job"},{"name":"claim_agent_queue_job","description":"Claim the next pending job using the worker token. Returns job:null immediately when no work is available, otherwise a job containing a new secret receipt. Visibility defaults to 60 seconds and accepts 30-900 seconds. Redelivery is possible: make worker side effects idempotent. Jobs fail after 5 unsuccessful claims. No job is executed by the server.","inputSchema":{"type":"object","required":["queue_id","worker_token"],"properties":{"queue_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"worker_token":{"type":"string","pattern":"^[a-f0-9]{64}$"},"visibility_timeout":{"type":"integer","default":60,"maximum":900,"minimum":30}},"additionalProperties":false},"title":"Claim agent queue job","logicalName":"claim_agent_queue_job","displayName":"Claim agent queue job","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ack_agent_queue_job","description":"Mark a claimed job completed using the worker token and its current receipt. Repeating acknowledgement with the same winning receipt succeeds. A different, stale or expired claim receipt is a conflict. Completion does not reclaim the lifetime job allowance.","inputSchema":{"type":"object","required":["queue_id","job_id","worker_token","receipt"],"properties":{"job_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"receipt":{"type":"string","pattern":"^[a-f0-9]{64}$"},"queue_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"worker_token":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"additionalProperties":false},"title":"Acknowledge agent queue job","logicalName":"ack_agent_queue_job","displayName":"Acknowledge agent queue job","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"release_agent_queue_job","description":"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.","inputSchema":{"type":"object","required":["queue_id","job_id","worker_token","receipt"],"properties":{"job_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"receipt":{"type":"string","pattern":"^[a-f0-9]{64}$"},"queue_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"worker_token":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"additionalProperties":false},"title":"Release agent queue job","logicalName":"release_agent_queue_job","displayName":"Release agent queue job","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"renew_agent_queue_job","description":"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.","inputSchema":{"type":"object","required":["queue_id","job_id","worker_token","receipt"],"properties":{"job_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"receipt":{"type":"string","pattern":"^[a-f0-9]{64}$"},"queue_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"worker_token":{"type":"string","pattern":"^[a-f0-9]{64}$"},"visibility_timeout":{"type":"integer","default":60,"maximum":900,"minimum":30}},"additionalProperties":false},"title":"Renew agent queue job","logicalName":"renew_agent_queue_job","displayName":"Renew agent queue job","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_dns_name","description":"Point a public hostname at an address you already control, for 24 hours. Use it when something needs a name rather than an address: a webhook target someone has to type, a staging box whose address moves, a service two agents must reach by the same name. No API key, no account and no sign up: call it directly. The name is assigned and never chosen, and comes back as aisense-<slug>.53for24h.com. The answer carries dns_token once and never again; without it the name cannot be changed or removed. I","inputSchema":{"type":"object","required":["ip"],"properties":{"ip":{"type":"string","maxLength":45},"ttl":{"enum":[60],"type":"integer"}},"additionalProperties":false},"title":"Create a temporary DNS name","logicalName":"create_dns_name","displayName":"Create a temporary DNS name","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"read_dns_name","description":"Look up what a temporary DNS name points at and how long it has left. No token is needed: everything it returns is already public in DNS. Use it to confirm a name exists and resolves the way you expect before handing it to someone else. It fails once the name has expired, and a name stops answering in the same second it falls due.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","pattern":"^[a-z0-9]{7}$","maxLength":7,"minLength":7}},"additionalProperties":false},"title":"Read a temporary DNS name","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read_dns_name","displayName":"Read a temporary DNS name"},{"name":"update_dns_name","description":"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.","inputSchema":{"type":"object","required":["slug","dns_token"],"properties":{"ip":{"type":"string","maxLength":45},"ttl":{"enum":[60],"type":"integer"},"slug":{"type":"string","pattern":"^[a-z0-9]{7}$","maxLength":7,"minLength":7},"dns_token":{"type":"string","maxLength":128,"minLength":16}},"additionalProperties":false},"title":"Update a temporary DNS name","logicalName":"update_dns_name","displayName":"Update a temporary DNS name","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete_dns_name","description":"Remove a temporary DNS name now, before its 24 hours are up. Needs the dns_token. Use it when the work is done and the name should stop answering rather than sit there until it expires. The removal reaches the primary name server at once and the secondary follows by replication, so a disconnected secondary can keep answering until it reconnects or the name expires. A resolver that already holds the answer keeps it for the rest of its TTL, at most 60 seconds.","inputSchema":{"type":"object","required":["slug","dns_token"],"properties":{"slug":{"type":"string","pattern":"^[a-z0-9]{7}$","maxLength":7,"minLength":7},"dns_token":{"type":"string","maxLength":128,"minLength":16}},"additionalProperties":false},"title":"Delete a temporary DNS name","logicalName":"delete_dns_name","displayName":"Delete a temporary DNS name","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Welcome-to-aisenseapi-com---1790435808&config=eyJ1cmwiOiAiaHR0cHM6Ly9haXNlbnNlYXBpLmNvbS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Welcome-to-aisenseapi-com---1790435808%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Faisenseapi.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Welcome-to-aisenseapi-com---1790435808%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Faisenseapi.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Welcome+to+aisenseapi.com+-+1790435808&connectorUrl=https%3A%2F%2Faisenseapi.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Welcome-to-aisenseapi-com---1790435808\" --url \"https://aisenseapi.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/aisenseapi-mcp-2cf9c7efd4","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/aisenseapi-mcp-2cf9c7efd4/tools/{tool}","mcpServerUrl":"https://aisenseapi.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/aisenseapi-mcp-2cf9c7efd4?live=1"}