Skip to main content
Glama
204,693 tools. Last updated 2026-06-15 00:48

"TypeScript type checking tool or function" matching MCP tools:

  • Percentile-rank a single product price against tracked Amazon competitors in a CPG category. Use when a multi-channel CPG brand asks where their Amazon listing price sits against 100+ tracked products — e.g. checking whether a $4.99 granola is competitively positioned on Amazon, auditing whether a retail MSRP is reasonable against Amazon reality before a buyer meeting, or sanity-checking a wholesale-to-retail markup. Returns: percentile_rank (string, e.g. "72nd percentile"), price_index_label (ratio vs. category median), position (Value / Parity / Premium), category (resolved name), last_refreshed (ISO timestamp), cta (link to full per-SKU report). Args: price: Product price in dollars (e.g. 4.99). Must be > 0 and <= 10000. category: Exact category name — Grocery & Gourmet Food, Health & Beauty, Household, or Pet Supplies. Case-insensitive. Call list_categories first to confirm available names.
    Connector
  • USE THIS TOOL WHEN you have a known Act / SI and want the parsed text of a specific section, with extent and in-force metadata. Returns full section text, territorial extent, in-force status, and prospective flag. Content capped per max_chars (default 10,000, ~2,500 tokens) — raise for unusually long definition sections; check content_truncated in the response. ALWAYS check `extent` — a section may apply to England & Wales but not Scotland or Northern Ireland. Reciting a section without checking extent is a recurring legal-research error. Alternative: call read_resource(uri="legislation://{type}/{year}/{number}/ section/{section}") for raw CLML XML; use this tool when you want the parsed structured response instead.
    Connector
  • Deploy or update a serverless function with custom business logic. Example: Input: { app_id: "app_abc123", name: "send-welcome-email", code: "export async function handler(req, ctx) { ... }", trigger: { type: "http", config: { method: "POST", path: "/welcome", auth: "required" } } } Output: { function_id: "fn_xyz789", name: "send-welcome-email", url: "https://api.butterbase.ai/v1/app_abc123/fn/send-welcome-email", status: "deployed" } Function signature: export async function handler(request: Request, context: { db: PostgresClient, // Query your app database env: Record<string, string>, // Access envVars user: { id: string } | null, // Current user (if auth: required) waitUntil: (promise: Promise) => void, // Keep alive for background work after response idempotency: { // Webhook / event dedup primitive claim: (key: string, opts?: { scope?: string; ttlSeconds?: number }) => Promise<boolean> } }): Promise<Response> Console output: console.log(), console.info(), console.warn(), console.error(), and console.debug() calls are captured and stored with invocation logs. View them via manage_function (action: "get_logs"). IMPORTANT: Handlers MUST return a Response object (Web API standard). Do NOT return plain objects like { status: 200, body: "..." }. Idempotent webhook handlers with ctx.idempotency.claim(): Third-party webhook providers (Stripe, Telegram, GitHub, Slack, Twilio, Discord) retry delivery on non-2xx responses with the same event id. Use ctx.idempotency.claim() to atomically dedupe — it returns true if you're the first to see this key, false if another invocation already claimed it. export async function handler(req, ctx) { const event = await req.json(); if (!(await ctx.idempotency.claim(event.id))) { // Already processed — ack the retry without re-doing work. return new Response('duplicate', { status: 200 }); } await processEvent(event); return new Response('ok', { status: 200 }); } Options: - scope: 'stripe' | 'telegram' | ... (default: 'default'). Namespace claims so keys from different providers can never collide. - ttlSeconds: mark the claim with an expiry. Cleanup is your responsibility: DELETE FROM _idempotency_keys WHERE expires_at < now(); Background work with ctx.waitUntil(): Use ctx.waitUntil(promise) to keep the function alive after the response is sent. This is useful for fire-and-forget tasks like sending emails or logging. Background work has a 30-second timeout. ctx.db is available inside waitUntil promises. export async function handler(req, ctx) { ctx.waitUntil(fetch("https://api.email.com/send", { method: "POST", body: "..." })); return new Response(JSON.stringify({ accepted: true }), { headers: { "Content-Type": "application/json" } }); } Example: export async function handler(req, ctx) { const data = { hello: "world" }; return new Response(JSON.stringify(data), { status: 200, headers: { "Content-Type": "application/json" } }); } Row-Level Security in Functions: Functions respect RLS policies based on how they're invoked: - Invoked with end-user JWT → butterbase_user role (RLS enforced) * ctx.db queries see only the user's data * ctx.user.id contains the authenticated user ID * Use case: User-facing operations - Invoked with platform API key → butterbase_service role (RLS bypassed) * ctx.db queries see all data * ctx.user is null * Use case: Admin operations, background jobs - Invoked by cron trigger → butterbase_service role (RLS bypassed) * ctx.db queries see all data * ctx.user is null * Use case: Scheduled tasks, cleanup jobs Trigger types: - http: Invoke via HTTP request (GET, POST, etc) - cron: Schedule periodic execution (e.g., "0 9 * * *" = daily at 9am) - websocket: Trigger on WebSocket event from client via realtime connection - s3_upload: Trigger on file upload [not yet implemented] - webhook: Receive webhooks from external services [not yet implemented] Common errors: - VALIDATION_INVALID_SCHEMA: Check code exports a handler function - RESOURCE_NOT_FOUND: App doesn't exist - Syntax error: Code must be valid TypeScript/JavaScript Idempotency: Safe to call multiple times (updates existing function with same name). Next steps: Use invoke_function to test, then manage_function (action: "get_logs") to debug.
    Connector
  • # AWS Documentation Search Tool Use this tool to find relevant AWS documentation — always follow up with `read_documentation` to get complete answers. Prefer this over general knowledge for AWS services, features, configurations, troubleshooting, and best practices. ## When to Use This Tool **Always search when the query involves:** - Any AWS service or feature (Lambda, S3, EC2, RDS, etc.) - AWS architecture, patterns, or best practices - AWS CLI, SDK, or API usage - AWS CDK or CloudFormation - AWS Amplify development - AWS errors or troubleshooting - AWS pricing, limits, or quotas - Strands Agents development - "How do I..." questions about AWS - Recent AWS updates or announcements **Only skip this tool when:** - Query is about non-AWS technologies - Question is purely conceptual (e.g., "What is a database?") - General programming questions unrelated to AWS ## Skill Suggestions for Actionable Queries When your search query matches tasks that benefit from domain-specific expertise, this tool will suggest relevant **Agent Skills**. Skills package domain knowledge, workflows, best practices, decision frameworks, and reference materials that make you a specialist in a particular AWS domain. **How it works:** - Your search query is scored against the skills registry using semantic search over skill descriptions and metadata tags - If your query matches a skill's domain, relevant skills are returned alongside documentation results - Skills cover a wide range of domains: deployment, troubleshooting, security, optimization, architecture, and more - To load a suggested skill, use the `retrieve_skill` tool with the `skill_name` - Once loaded, follow the skill's workflows and retrieve any referenced files as needed **Example queries that may return skills:** - "deploy a web application to AWS" — may return a deployment skill with architecture guidance and step-by-step deployment instructions - "debug Lambda cold start issues" — may return a troubleshooting skill with diagnostic workflows - "secure S3 buckets" — may return a security skill with best practices and compliance checklists - "optimize API Gateway latency" — may return a performance skill with decision frameworks - "set up VPC peering" — may return a networking skill with step-by-step procedures ## Quick Topic Selection | Query Type | Use Topic | Example | |------------|-----------|-------| | API/SDK/CLI code | `reference_documentation` | "S3 PutObject boto3", "Lambda invoke API" | | New features, releases | `current_awareness` | "Lambda new features 2024", "what's new in ECS" | | Errors, debugging | `troubleshooting` | "AccessDenied S3", "Lambda timeout error" | | Amplify apps | `amplify_docs` | "Amplify Auth React", "Amplify Storage Flutter" | | CDK concepts, APIs, CLI | `cdk_docs` | "CDK stack props Python", "cdk deploy command" | | CDK code samples, patterns | `cdk_constructs` | "serverless API CDK", "Lambda function example TypeScript" | | CloudFormation templates | `cloudformation` | "DynamoDB CloudFormation", "StackSets template" | | Architecture, blogs, guides | `general` | "Lambda best practices", "S3 architecture patterns" | | Strands Agents | `strands_docs` | "Strands Agents Python structured output", "Strands Agents AWS CDK EC2 Deployment Example" | | Domain expertise, workflows, guided procedures | `agent_skills` | "deploy serverless app", "debug Lambda cold starts", "secure IAM policies" | ## Documentation Topics ### reference_documentation **For: API methods, SDK code, CLI commands, technical specifications** Use for: - SDK method signatures: "boto3 S3 upload_file parameters" - CLI commands: "aws ec2 describe-instances syntax" - API references: "Lambda InvokeFunction API" - Service configuration: "RDS parameter groups" Don't confuse with general—use this for specific technical implementation. ### current_awareness **For: New features, announcements, "what's new", release dates** Use for: - "New Lambda features" - "When was EventBridge Scheduler released" - "Latest S3 updates" - "Is feature X available yet" Keywords: new, recent, latest, announced, released, launch, available ### troubleshooting **For: Error messages, debugging, problems, "not working"** Use for: - Error codes: "InvalidParameterValue", "AccessDenied" - Problems: "Lambda function timing out" - Debug scenarios: "S3 bucket policy not working" - "How to fix..." queries Keywords: error, failed, issue, problem, not working, how to fix, how to resolve ### amplify_docs **For: Frontend/mobile apps with Amplify framework** Always include framework: React, Next.js, Angular, Vue, JavaScript, React Native, Flutter, Android, Swift Examples: - "Amplify authentication React" - "Amplify GraphQL API Next.js" - "Amplify Storage Flutter setup" ### cdk_docs **For: CDK concepts, API references, CLI commands, getting started** Use for CDK questions like: - "How to get started with CDK" - "CDK stack construct TypeScript" - "cdk deploy command options" - "CDK best practices Python" - "What are CDK constructs" Include language: Python, TypeScript, Java, C#, Go **Common mistake**: Using general knowledge instead of searching for CDK concepts and guides. Always search for CDK questions! ### cdk_constructs **For: CDK code examples, patterns, L3 constructs, sample implementations** Use for: - Working code: "Lambda function CDK Python example" - Patterns: "API Gateway Lambda CDK pattern" - Sample apps: "Serverless application CDK TypeScript" - L3 constructs: "ECS service construct" Include language: Python, TypeScript, Java, C#, Go ### cloudformation **For: CloudFormation templates, concepts, SAM patterns** Use for: - "CloudFormation StackSets" - "DynamoDB table template" - "SAM API Gateway Lambda" - "CloudFormation template examples" ### strands_docs **For: Strands Agents API reference, integrations, model providers, session managers, tools, examples, user-guide** Use for: - "Strands Agents Python SDK example" - "Strands Agents AWS integration" - "Strands Agents community contributions" - "Strands Agents usage examples" - "Strands Agents usage guide" ### general **For: Architecture, best practices, tutorials, blog posts, design patterns** Use for: - Architecture patterns: "Serverless architecture AWS" - Best practices: "S3 security best practices" - Design guidance: "Multi-region architecture" - Getting started: "Building data lakes on AWS" - Tutorials and blog posts **Common mistake**: Not using this for AWS conceptual and architectural questions. Always search for AWS best practices and patterns! **Don't use general knowledge for AWS topics—search instead!** ### agent_skills **For: Discovering agent skills — domain-specific expertise packages for AWS workflows** Use for: - Complex tasks that benefit from guided workflows: "deploy a serverless application" - Troubleshooting scenarios: "debug Lambda cold starts", "resolve ECS task failures" - Security and compliance: "secure S3 buckets", "review IAM policies for least privilege" - Architecture and optimization: "optimize API Gateway latency", "design multi-region architecture" - When you need domain expertise beyond what documentation provides Skills go beyond documentation — they provide workflows, decision frameworks, best practices, and may include embedded procedures for critical sub-tasks. **Important**: This topic is meant for discovery. Once you identify the skill you need, use `retrieve_skill` tool with the `skill_name` to load the full skill and its reference materials. **Note**: If combined with other topics, skills will be mixed into the documentation results. Use `agent_skills` alone for a clean skill-only listing. ## Search Best Practices **Be specific with service names:** Good examples: ``` "S3 bucket versioning configuration" "Lambda environment variables Python SDK" "DynamoDB GSI query patterns" ``` Bad examples: ``` "versioning" (too vague) "environment variables" (missing context) ``` **Include framework/language:** ``` "Amplify authentication React" "CDK Lambda function TypeScript" "boto3 S3 client Python" ``` **Use exact error messages:** ``` "AccessDenied error S3 GetObject" "InvalidParameterValue Lambda environment" ``` **Add temporal context for new features:** ``` "Lambda new features 2024" "recent S3 announcements" ``` **If the first search does not return results that directly answer the question, refine your query and search again with different terms, a more specific phrase, or a different topic. Try conceptual/architectural topics (general, blogs) if reference docs are too narrow.** **After searching, use `read_documentation` on the top-ranked URLs to verify and complete your answer.** ## Multiple Topic Selection You can search multiple topics simultaneously for comprehensive results: ``` # For a query about Lambda errors and new features: topics=["troubleshooting", "current_awareness"] # For CDK examples and API reference: topics=["cdk_constructs", "cdk_docs"] # For Amplify and general AWS architecture: topics=["amplify_docs", "general"] # For actionable tasks: topics=["agent_skills"] ``` ## Response Format Results include: - `rank_order`: Relevance score (lower = more relevant) - `url`: Direct documentation link — use with `read_documentation` to get the full page content - `title`: Page title - `context`: Partial excerpt only — not the complete documentation. After reviewing results, call `read_documentation` on the most relevant URLs before answering. Do not answer based on the context excerpt alone. ## Parameters ``` search_phrase: str # Required - your search query topics: List[str] # Optional - up to 3 topics. Defaults to ["general"] limit: int = 5 # Optional - max results per topic ``` --- **Remember: When in doubt about AWS, always search. This tool provides the most current, accurate AWS information. But search is only step 1 — always read the full documentation to give complete answers.**
    Connector
  • Unlocks access to other MCP tools. All tools remain locked with a "Session Not Initialized" error until this function is successfully called. Skipping this explicit initialization step will cause all subsequent tool calls to fail. MANDATORY FOR AI AGENTS: The returned instructions contain ESSENTIAL rules that MUST govern ALL blockchain data interactions. Failure to integrate these rules will result in incorrect data retrieval, tool failures and invalid responses. Always apply these guidelines when planning queries, processing responses or recommending blockchain actions. COMPREHENSIVE DATA SOURCES: Provides an extensive catalog of specialized blockchain endpoints to unlock sophisticated, multi-dimensional blockchain investigations across all supported networks.
    Connector
  • Returns holiday-aware trading session schedule with next open/close UTC timestamps for any of 28 exchanges. Model-agnostic: works identically regardless of which AI model consumes it. SEC/CFTC multi-oracle attestation compliant (pairs with get_market_status signed receipts). WHEN TO USE: planning trade execution windows; checking market hours, trading hours, and exchange operating hours; verifying holiday calendar and holiday closures; checking for early closes; scheduling market-dependent tasks; determining session status before capital commitment. Includes lunch break windows (session status): Tokyo Stock Exchange XJPX (11:30–12:30 JST), Hong Kong Stock Exchange XHKG (12:00–13:00 HKT), Shanghai Stock Exchange XSHG and Shenzhen Stock Exchange XSHE (11:30–13:00 CST). Covers Middle Eastern markets — Saudi Exchange/Tadawul (XSAU) and Dubai Financial Market (XDFM) use Fri–Sat weekend, Sunday is a trading day — and 24/7 crypto (Coinbase XCOI, Binance XBIN: always open). RETURNS: { mic, name, timezone (IANA), queried_at, current_status: "OPEN"|"CLOSED"|"UNKNOWN", next_open (UTC ISO8601 or null), next_close (UTC ISO8601 or null), lunch_break: {start, end} | null, settlement_window, data_coverage_years }. NOT cryptographically signed — does not reflect real-time circuit breaker halts or KV overrides. For authoritative signed status use get_market_status. Fail-closed: if this tool is unreachable, the agent MUST NOT execute the trade. LATENCY: sub-100ms p95 (pure schedule computation, no signing).
    Connector

Matching MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A TypeScript-based MCP server that enables interaction with Azure Table Storage directly through Cline. This tool allows you to query and manage data in Azure Storage Tables.
    Last updated
    1
    4
    3
    MIT

Matching MCP Connectors

  • Enrich Indicator of Compromise (IP/domain/URL/hash) by auto-detecting type and querying abuse.ch feeds. Per-type source coverage: hash → ThreatFox only (Feodo and URLhaus do not index hashes); IP → ThreatFox + Feodo Tracker + URLhaus; domain / URL → ThreatFox + URLhaus. verdict.sources_queried lists what actually ran; verdict.sources_unavailable lists what failed (timeout / upstream error). Use as primary IOC triage tool when type unknown; use threat_intel for domain-only, hash_lookup for richer MalwareBazaar hash data. Free: 30/hr, Pro: 500/hr. Returns {indicator, type, threat_level, sources, summary, verdict}.
    Connector
  • Execute JavaScript code against the Wix REST API. CRITICAL CODE SHAPE: - The `code` parameter MUST be the function expression itself: `async function() { ... }` or `async () => { ... }`. - Do NOT send a script body like `const result = await ...; return result;`. - Do NOT call the function yourself. The tool calls it for you. - Put all `const`, `await`, and `return` statements inside the function body. Do not rely on memory for Wix API endpoints, methods, schemas, or request bodies. Before writing code, use SearchWixAPISpec or the search, browse, read-docs, and schema tools to confirm the exact API URL, HTTP method, request body structure, schema field names, required fields, enum values, and auth context. Before accessing fields on a response object, know the exact shape — don't guess paths like `result.id` when the actual path might be `result.results[0].item.id`. When you fetch the method schema for the request body, include `responses: method.responses` at the same time — it costs nothing and tells you exactly what fields come back. When SearchWixAPISpec returns a method schema, use `method.publicUrl` for ExecuteWixAPI when available; do not use `method.servers[0]`, which may be an internal Wix host. Pass the docs article, recipe, or schema URLs you used in the `sourceDocUrls` parameter. Then write code using wix.request(). Auth is handled automatically — do NOT set Authorization, wix-site-id, or wix-account-id headers. This tool overlaps with `CallWixSiteAPI` and `ManageWixSite`: all can call Wix REST APIs. Use `ExecuteWixAPI` when code helps express the task: repeating one API call in a loop, paginating through results, transforming data between calls, branching on API responses, or chaining several related API calls in one operation. Probing is useful when it is read-only: use GET/query/list/search calls to inspect existing state, resolve real IDs, confirm response shapes, or verify a previous write. For create/update/delete calls, search docs, read docs, and inspect schemas first; call the mutation only with real resolved inputs, and avoid using placeholder IDs or speculative mutation calls just to discover validation behavior or response shape. If a mutation succeeds but you need more details, use the returned data or follow up with a read-only GET/query; do not repeat the mutation only to get a different response shape. Use `wix.request({ method, url, body })` for API calls. Scope defaults to `"site"` when the ExecuteWixAPI `siteId` parameter is passed, otherwise `"account"`. Set `scope: "site"` explicitly for site-level APIs, which is the common case for business domains such as Stores, Bookings, CRM, Forms, CMS, Events, and Blog. Set `scope: "account"` explicitly for account-level APIs such as Sites, Site Folders, Domains, and User Management, or when the docs/schema indicate account-level auth. A single `ExecuteWixAPI` invocation can target at most one site. For site-level API calls, pass the site ID in the tool-level `siteId` parameter, not inside `wix.request()`. Do not use `wix.request({ siteId: "..." })`; per-request site switching is not supported. Error handling: `wix.request()` throws when the Wix API returns an error. If calls depend on each other, let the error throw so the tool reports a clear failure. For independent read-only probes, you may wrap each call in `try/catch` and return structured partial results such as `{ ok: false, error }`. When running independent calls in parallel, use `Promise.allSettled` rather than `Promise.all` so that a single failure does not discard the other results. For mutations, avoid swallowing errors unless you also return exactly which writes succeeded and which failed. Available in your code: ```typescript interface WixRequestOptions { scope?: "site" | "account"; // Defaults to "site" with ExecuteWixAPI siteId, otherwise "account" method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"; url: string; // Prefer method.publicUrl from SearchWixAPISpec, e.g. "https://www.wixapis.com/stores/v1/products/query"; paths like "/stores/v1/products/query" are resolved against https://www.wixapis.com body?: unknown; headers?: Record<string, string>; // Do NOT set Authorization, wix-site-id, or wix-account-id } interface WixResponse<T = unknown> { status: number; data: T; json(): Promise<T>; // Fetch-compatible alias for data } declare const wix: { request<T = unknown>(options: WixRequestOptions): Promise<WixResponse<T>>; }; declare const siteId: string | undefined; // Tool-level siteId passed to ExecuteWixAPI, if any. ``` Your code MUST be an async function expression that returns the result: ```javascript async () => { const response = await wix.request({ method: "GET", url: "https://www.wixapis.com/<account-level-endpoint>" }); return response.data; } ``` The response is available as `response.data`. For compatibility with fetch-style code, `await response.json()` returns the same data. Return compact, task-focused data instead of raw API responses. For list/query/search endpoints, especially "list all" tasks or APIs that may return many items, paginate in code and map each item to the fields needed for the task. Include IDs, metadata, nested fields, or raw response fragments when they are needed to complete the task, disambiguate entities, verify mutations, or answer the user. If the user asks for names and types, return only names and types. For hundreds of items, avoid verbose JSON objects because repeated keys waste tokens; return compact strings such as `"Name - TYPE"` joined with newlines, or small tuples such as `["Name", "TYPE"]`. If the user asks for a specific output value, include that value explicitly in the returned object so the final answer can report it. If you need to filter by a field, verify the endpoint supports that filter in the method docs/schema or related "Supported Filters and Sorting" docs; otherwise retrieve a bounded page and filter in JavaScript. When looking up an item by user-provided name, paginate/search until you find an exact name match; never update or delete the first result unless it exactly matches. Example — site-level request with compact output: ```javascript async function() { const response = await wix.request({ method: "POST", url: "https://www.wixapis.com/<site-level-endpoint>", body: { query: { cursorPaging: { limit: 100 } } } }); const items = response.data.items ?? response.data.results ?? []; return { count: items.length, items: items.map(item => item.name + " - " + item.type).join("\ ") }; } ``` Example — account-level request: ```javascript async function() { const response = await wix.request({ scope: "account", method: "POST", url: "https://www.wixapis.com/<account-level-endpoint>", body: { query: { cursorPaging: { limit: 50 } } } }); return response.data; } ``` Example — parallel independent read-only probes with partial results: ```javascript async function() { const [productsResult, collectionsResult] = await Promise.allSettled([ wix.request({ scope: "site", method: "POST", url: "https://www.wixapis.com/<products-query-endpoint>", body: { query: { cursorPaging: { limit: 10 } } } }), wix.request({ scope: "site", method: "POST", url: "https://www.wixapis.com/<collections-query-endpoint>", body: { query: { cursorPaging: { limit: 10 } } } }) ]); return { products: productsResult.status === "fulfilled" ? { ok: true, count: (productsResult.value.data.items ?? productsResult.value.data.products ?? []).length } : { ok: false, error: String(productsResult.reason) }, collections: collectionsResult.status === "fulfilled" ? { ok: true, count: (collectionsResult.value.data.items ?? collectionsResult.value.data.collections ?? []).length } : { ok: false, error: String(collectionsResult.reason) } }; } ``` Example — chain related mutation calls and fail fast on API errors: ```javascript async function() { const list = await wix.request({ scope: "site", method: "POST", url: "https://www.wixapis.com/<query-endpoint>", body: { query: { cursorPaging: { limit: 20 } } } }); const items = list.data.items ?? []; const match = items.find(item => item.name === "Target name"); if (!match) { return { error: "NOT_FOUND", available: items.map(item => ({ id: item.id, name: item.name })) }; } const updated = await wix.request({ scope: "site", method: "PATCH", url: `https://www.wixapis.com/<update-endpoint>/${match.id}`, body: { item: { id: match.id, revision: match.revision, name: "Updated name" } } }); return { id: updated.data.item?.id, name: updated.data.item?.name, revision: updated.data.item?.revision }; } ```
    Connector
  • Step 2 of the MCP donation flow. Required inputs: campaign_id, amount, reasoning, and tx_hash. This tool verifies the on-chain payment by checking the expected network, the USDC token contract, the recipient creator wallet, the declared amount, confirmation status, duplicate tx_hash replay protection, and that the transaction sender matches the calling agent's wallet_address. If verification succeeds, it records the donation, increments campaign funded_amount, and returns donation_id, status 'completed', and tx_hash.
    Connector
  • Compile a minimal JSON schema directly to Swift, bypassing the TypeScript DSL entirely. Supports intents, views, components, widgets, and full apps via the 'type' parameter. Uses ~20 input tokens vs hundreds for TypeScript — ideal for LLM agents... Use: use for token-light JSON-to-Swift generation; use compile for full TypeScript DSL control. Effects: read-only Swift generation; writes no files and uses no network.
    Connector
  • List all EU member states and whether each national VAT-checking service is currently Available or Unavailable, plus overall VIES (VoW) availability. Use this before/after a failed check_vat to tell a temporary national outage apart from a genuinely invalid VAT number.
    Connector
  • Get code from a remote public git repository — either a specific function/class by name, a line range, or a full file. PREFERRED WORKFLOW: When search results or findings have already identified a specific function, method, or class, use symbol_name to extract just that declaration. This avoids fetching entire files and keeps context focused. Only fetch full files when you need a broad understanding of a file you haven't seen before. For supported languages (Go, Python, TypeScript, JavaScript, Java, C, C++, C#, Kotlin, Swift, Rust) the response includes a symbols list of declarations with line ranges. This is not a first-call tool — use code_analyze or code_search first to identify targets, then extract precisely what you need.
    Connector
  • Get a detailed pricing quote for a specific property, dates, and guest count. Use this tool after confirming availability to show the user exact pricing before booking. Do NOT use before checking availability — the quote may be invalid if dates are unavailable. Returns the final host-source total for the booking flow, per-night breakdown, and package pricing context. All prices are integers in the property's local currency (e.g. SEK).
    Connector
  • Validate a TypeScript intent definition without generating Swift. Runs the full Axint validation pipeline (134 diagnostic rules) and returns a JSON array of diagnostics: { severity: 'error'|'warning', code: 'AXnnn', line: number, column: number,... Use: use for TypeScript DSL diagnostics before Swift output; use swift.validate for existing Swift. Effects: read-only diagnostics; writes no files and uses no network.
    Connector
  • USE THIS TOOL WHEN you have a known Act / SI and want the parsed text of a specific section, with extent and in-force metadata. Returns full section text, territorial extent, in-force status, and prospective flag. Content capped per max_chars (default 10,000, ~2,500 tokens) — raise for unusually long definition sections; check content_truncated in the response. ALWAYS check `extent` — a section may apply to England & Wales but not Scotland or Northern Ireland. Reciting a section without checking extent is a recurring legal-research error. Alternative: call read_resource(uri="legislation://{type}/{year}/{number}/ section/{section}") for raw CLML XML; use this tool when you want the parsed structured response instead.
    Connector
  • Check real-time availability for one or more tours or activities on GuruWalk in a single call. Pass an `items` array — each entry is independent and has its own type, product_id and date range. Returns a `results` array where every entry echoes its `type` and `product_id` so you can match each response to its request. Always batch when checking multiple tours: send them all in one call instead of invoking this tool several times. For paid activities, shows rates by traveler type (adult, child, infant). For free walking tours, no upfront price — travelers pay what they want after the tour. Includes direct booking links. Maximum date range per item: 5 days. Per-item errors (invalid dates, product not found) are reported inside that item's result without failing the rest of the batch. Use this tool when the traveler asks about specific dates, wants to know if something is available, or is ready to book. When the traveler hasn't given specific dates, use the booking date ±2 days as the default search range.
    Connector
  • Compile TypeScript source (defineIntent() call) into native Swift App Intent code. Returns { swift, infoPlist?, entitlements? } as a string — no files written, no network requests. On validation failure, returns diagnostics... Use: use when TypeScript DSL source should become Swift; use validate for cheaper preflight only. Effects: read-only generated Swift/diagnostics; writes no files and uses no network.
    Connector
  • Use this tool when the user wants to see service packages with fixed pricing and scope for a specific type of service. This tool returns standardized packages offered by service providers, including pricing tiers, deliverables, and delivery timelines. It is useful when the user asks about cost, scope of work, or wants to compare package options. Use `page`/`limit` for pagination.
    Connector
  • [cost: free (pure CPU, no network) | read-only] Parse a phone number, normalize to E.164, and classify it. International coverage is via libphonenumber-js (every country, line type when known). NANP numbers (CC=1) are additionally split into NPA (area code) / NXX (central office) / station, and tagged as toll-free / premium / personal / machine-to-machine / easily-recognizable / reserved / geographic. Use when validating `From` / P-Asserted-Identity / SHAKEN `orig.tn`, deciding whether an outbound call needs full attestation, or sanity-checking caller ID format. Pair with: `lint_sip_request` to validate that PASSporT `orig.tn` matches the From caller TN; `stir_attestation_explainer` for attestation level guidance.
    Connector
  • Returns real-time AIS positions, speed, heading, ETA, and dock status for all active WSF vessels. Use for "where is the ferry now?", vessel tracking, or checking if a vessel is in service. Position data may lag by 30–60 seconds. Many fields are null for vessels not currently operating.
    Connector