Skip to main content
Glama
742,126 tools. Updated 2026-11-04 15:04

"MCP Servers for Supabase" matching MCP tools:

  • WRITE to the Knowledge Base. This tool has TWO modes: **MODE 1 — SAVE a new card**: Provide `content` with full Markdown following the ACTIONABLE schema below. **MODE 2 — REPORT OUTCOME**: Provide `kb_id` + `outcome` ('success' or 'failure'). WHEN TO USE: - Mode 1: After successfully fixing a bug IF no existing KB card covered it. - Mode 2: ALWAYS after applying a solution from `read_kb_doc` and running verification. INPUT: - `content`: (Mode 1) Full Markdown KB card content — follow the EXACT template below. - `overwrite`: (Mode 1) Set to True to update an existing card. - `kb_id`: (Mode 2) ID of the card to report outcome for. - `outcome`: (Mode 2) 'success' or 'failure'. - `enrichment`: (Mode 2, optional) Additional context to merge into the card when outcome is 'failure'. ━━━ CARD TEMPLATE (Mode 1) — copy this structure EXACTLY ━━━ ``` --- kb_id: "[PLATFORM]_[CATEGORY]_[NUMBER]" # e.g. WIN_TERM_001, CROSS_DOCKER_002 title: "[Short Title — max 5 words]" category: "[terminal|devops|supabase|fastmcp|network|database|...]" platform: "[windows|linux|macos|cross-platform]" technologies: [tech1, tech2] complexity: [1-10] criticality: "[low|medium|high|critical]" created: "[YYYY-MM-DD]" tags: [tag1, tag2, tag3] related_kb: [] --- # [Short Title — max 5 words] > **TL;DR**: [One sentence — what's the problem + solution] > **Fix Time**: ~[X min] | **Platform**: [Windows/Linux/macOS/All] --- ## 🔍 This Is Your Problem If: - [ ] [Symptom 1 — specific symptom or error message] - [ ] [Symptom 2 — specific error code or log line] - [ ] [Symptom 3 — environment/version condition] **Where to Check**: [console / logs / env / task manager / etc.] --- ## ✅ SOLUTION (copy-paste) ### 🎯 Integration Pattern: [Global Scope] / [Inside Init] / [Event Handler] ```[language] # [One-line comment — what this code does] [depersonalized code WITHOUT specific paths, use __VAR__ for things to replace] ``` ### ⚡ Critical (won't work without this): - ✓ **[Critical Point 1]** — [why it's essential] - ✓ **[Critical Point 2]** — [common mistake to avoid] ### 📌 Versions: - **Works**: [OS/library versions where confirmed working] - **Doesn't Work**: [OS/library versions where known broken] --- ## ✔️ Verification (<30 sec) ```bash [single command to verify the fix worked] ``` **Expected**: ✓ [Specific output or behavior that confirms success] **If it didn't work** → see Fallback below ⤵ --- ## 🔄 Fallback (if main solution failed) ### Option 1: [approach name] ```bash [command] ``` **When**: [condition to use this option] | **Risks**: [what might break] ### Option 2: [alternative approach] ```bash [command] ``` **When**: [condition] | **Risks**: [what might break] --- ## 💡 Context (optional) **Root Cause**: [1 sentence — why this problem occurs] **Side Effects**: [what might change after applying the fix] **Best Practice**: [how to avoid this in future — 1 point] **Anti-Pattern**: ✗ [what NOT to do — common mistake] --- **Applicable**: [OS, library versions, conditions] **Frequency**: [rare / common / very common] ``` ━━━ END OF TEMPLATE ━━━ RULES for ACTIONABLE cards: 1. Solution FIRST — after diagnosis, code immediately 2. Depersonalize — no names, project names, or absolute paths 3. Use `__VAR__` markers for anything the user must replace 4. One Verification command, result visible in <30 sec 5. Fallback — 1-2 options max, always include When/Risks 6. Context at End — WHY is optional reading for curious agents
    ConnectorNo auth
  • Get the exact commands for running the local crypto plane (the `@seekrit/mcp` npm server, the `@seekrit/cli` CLI, seekrit-run, seekrit-proxy), including a copy-paste .mcp.json that reuses this session's credential. Takes no arguments and returns prose plus config. Call this the moment you need to SET or READ a secret value — no tool on this server will ever return one. Use local_tool_for instead when you want the single command for one named operation.
    ConnectorNo auth
  • Purpose: return the rCB and virgin carbon black price benchmark structure - the virgin N550 series as anchor, the rCB band expressed as 25-40% of that anchor, feedstock prices, international references, regional spreads, grade-level bands and cost structure. Guidelines: leave product and section empty for the full set; narrow with section='rCB' / 'feedstock' / 'international' / 'cost'; pair with get_elt_price_index for feedstock indices and get_rcb_index for the layered index series. Limits: reference bands and relative structure only - no exchange quote and no trading recommendation; ELT feedstock absolute prices are deliberately not published; every figure is a range, never a single transactable value. Ex: get_price_benchmark(section='rCB'), get_price_benchmark(product='N330', language='en'), get_price_benchmark(section='cost', response_format='json').
    ConnectorNo auth
  • Write operations on the open spreadsheet. Call as {"action": "<name>", "params": {...}} — per-action params are listed in the Action Reference below. Numbers, booleans, and nulls in cell values are coerced to strings. Special actions (not shown in the action enum): • batch — {"action": "batch", "params": {"actions": [{"action": "<name>", "params": {...}}, ...]}}. Runs writes sequentially; errors short-circuit the batch. • context — {"action": "context", "params": {"topic": "<name>"}} or {"action": "context", "params": {"action": "<name>"}}. Returns deeper docs for a topic or a single action's signature. Plural "topics" / "actions" arrays are also accepted and may be combined. Topics: python, javascript, formula, connection, validation, a1, quadratic, chart, pivot_table. Action Reference Cell Data: • set_cell_values(top_left_position, cell_values, sheet_name?) — Sets cell values as a 2D string array (first row = headers). top_left_position: single cell in A1 notation. Don't place over existing data unless requested. Values replace existing content; use empty string to clear. For merged cells, place at the anchor (top-left) cell. Prefer this over add_data_table for tabular data; only use add_data_table when the user explicitly asks for a data table or the file already uses data tables. When writing tabular data as plain cells, format the header row afterward with set_text_formats (at least bold) so it's visually distinct — plain cells don't auto-style headers like data tables do. Don't use for formulas or code. • delete_cells(selection, sheet_name?) — Delete cell values in a selection (A1 notation). Don't delete cells referenced by code cells unless explicitly asked. To delete table columns: "TableName[Column Name]". To delete tables: "TableName". • move_cells(source_selection_rect, target_top_left_position, sheet_name?) — Move a rectangular block of cells. Target is the top-left corner (single cell). For spilled code cells, move just the anchor cell. • add_data_table(top_left_position, table_name, table_data, sheet_name?) — Adds a data table. Data tables are discouraged by default — only use when the user specifically requests a data table or the file already uses data tables; otherwise use set_cell_values. First row of table_data is headers. Leave 2 rows below and 2 columns right as spacing. All rows must have equal length (use empty strings for missing values). To convert existing data, use convert_to_table instead. To delete a table, use set_cell_values with empty string at the anchor. A single-value formula or code cell MAY be written into a data cell of an editable (imported/value) table — it's stored as in-place single-cell code computing a 1x1 result; avoid the table's name/column-header rows and read-only code-output tables/charts, and don't put multi-cell output (dataframes/charts) inside a table. Code: • set_code_cell_value(code_cell_position, code_cell_language, code_cell_name, code_string, sheet_name?) — Sets and runs a Python or JavaScript code cell. Prefer set_formula_cell_value whenever a formula can do the task; only use code when the functionality is not available in formulas (e.g. charts, ML, correlations, complex data transforms, or web/API requests). For static data use set_cell_values. For SQL use set_sql_code_cell_value. IMPORTANT: Always reference sheet data with q.cells() — never hardcode data values. For charts, use Plotly ONLY (import plotly.express or plotly.graph_objects). Do NOT use Matplotlib/Seaborn. Name the output (no spaces/special chars, _ allowed). Placement: Estimate output size before placing. Charts default to 7 wide x 23 tall cells. Cell must be empty (avoids spill error). Leave one extra column/row gap between the code cell and nearest content. Empty sheet → A1. • set_formula_cell_value(formulas) — formulas: [{code_cell_position, formula_string, sheet_name?}]. Prefer this whenever a formula can do the task; only use set_code_cell_value when formulas can't. For basic historical stock prices use the STOCKHISTORY formula; for financial data with no formula equivalent (adjusted prices, statements, dividends, real-time/intraday, technicals, economic data) use set_code_cell_value with Python + q.financial. Don't prefix formulas with =. code_cell_position can be a single cell ("A1"), range ("A1:A10"), or collection ("A1,A2:B2"). Cell references adjust relatively (like copy-paste). Use $ for absolute references ($A$1). Place near referenced data, no extra spacing needed. Aggregations go directly below or beside data. • rerun_code(sheet_name?, selection?) — Re-run code cells. Do NOT call after set_code_cell_value, set_formula_cell_value, or set_sql_code_cell_value — those already run automatically. Only use to refresh unchanged code (e.g., external data). • set_sql_code_cell_value(code_cell_position, code_cell_name, connection_kind, sql_code_string, connection_id, sheet_name?) — Sets and runs a SQL connection code cell. connection_kind: POSTGRES, MYSQL, MSSQL, SNOWFLAKE, BIGQUERY, COCKROACHDB, MARIADB, SUPABASE, NEON, MIXPANEL, GOOGLE_ANALYTICS, PLAID, QUICKBOOKS. Always call get_database_schemas before writing SQL. Cell must be empty. Empty sheet → A1. Import: • import_file(file_name, file_data, sheet_name?, insert_at?) — Import CSV/Excel/Parquet. file_data: base64-encoded. Extension determines format (.csv, .xlsx/.xls, .parquet/.parq/.pqt). To create a new file from an import, call files create_file first, then import_file. Formatting: • set_text_formats(formats) — formats array: [{selection, bold?, italic?, underline?, strike_through?, text_color?, fill_color?, align?, vertical_align?, wrap?, font_size?, number_type?, currency_symbol?, numeric_decimals?, numeric_commas?, date_time?, sheet_name?}]. For table columns use table references ("Table_Name[Column Name]") instead of A1 ranges. Colors: hex ("#FF0000"), empty string to remove. align: "left"/"center"/"right". vertical_align: "top"/"middle"/"bottom". wrap: "wrap"/"clip"/"overflow". number_type: "number"/"currency"/"percentage"/"exponential" (currency requires currency_symbol, e.g. "$"). numeric_decimals: integer >= 0, number of decimal places to display (e.g. "format percents as 2 decimals" → 2). Percentages: .01 → 1%, 1 → 100%. date_time: chrono format e.g. "%Y-%m-%d". font_size: points (default 10). Set to null to clear any format. • set_borders(borders) — borders: [{selection, border_selection, color, line, sheet_name?}]. border_selection: all/inner/outer/horizontal/vertical/left/top/right/bottom/clear. line: line1 (thin)/line2 (medium)/line3 (thick)/dotted/dashed/double/clear. color: CSS color string. • merge_cells(selection, sheet_name?) — Merge a range of cells (e.g. A1:D1). All values except top-left are cleared. • unmerge_cells(selection, sheet_name?) — Unmerge merged cells overlapping the selection. Sheets: • add_sheet(sheet_name, insert_before_sheet_name?) — Sheet names: unique, max 31 chars, no / \ ? * : [ ] • duplicate_sheet(sheet_name_to_duplicate, name_of_new_sheet) • rename_sheet(sheet_name, new_name) • delete_sheet(sheet_name) • move_sheet(sheet_name, insert_before_sheet_name?) • color_sheets(sheet_names_to_color) — [{sheet_name, color}]. color: CSS color string. • set_frozen_panes(sheet_name?, frozen_row_count, frozen_column_count) — freeze/pin rows from row 1 and columns from column 1. Use 0 to unfreeze an axis. Tables: • convert_to_table(selection, table_name, first_row_is_column_names, sheet_name?) — Convert existing cell data to a data table. Only use when the user explicitly asks for a data table or the file already uses data tables; otherwise keep data as plain cells. Selection must NOT contain code cells or existing tables. Table name row is added above, pushing data down by one row. • table_meta(table_location, new_table_name?, show_name?, show_columns?, alternating_row_colors?, first_row_is_column_names?, sheet_name?) — Set table metadata. table_location: anchor cell (top-left, e.g. A5). • table_column_settings(table_location, column_names, sheet_name?) — column_names: [{old_name, new_name, show}]. Only include columns to change. To delete columns use delete_cells with "TableName[Column Name]". Layout: • resize_columns(selection, size, sheet_name?) — size: "auto" (fit content), "default", or pixels (20-2000). • resize_rows(selection, size, sheet_name?) — size: "auto", "default", or pixels (10-2000). • set_default_column_width(size, sheet_name?) — size in pixels (20-2000, default 100). • set_default_row_height(size, sheet_name?) — size in pixels (10-2000, default 21). • insert_columns(column, right, count, sheet_name?) — column: letter (e.g. "C"). right: true=insert right, false=insert left. • insert_rows(row, below, count, sheet_name?) — row: number. below: true=insert below, false=insert above. • delete_columns(columns, sheet_name?) — columns: array of letters (e.g. ["A", "C"]). • delete_rows(rows, sheet_name?) — rows: array of numbers (e.g. [1, 5, 10]). Charts (Excel-native; prefer over Plotly/Chart.js code cells for standard charts of sheet data — see the "chart" topic for details): • add_chart(chart_type, position, series, sheet_name?, title?, name?, categories?, legend?, x_axis_title?, x_axis_min?, x_axis_max?, x_axis_number_format?, y_axis_title?, y_axis_min?, y_axis_max?, y_axis_number_format?, width_cells?, height_cells?, chart_3d_rot_x?, chart_3d_rot_y?, chart_3d_perspective?, chart_3d_depth_gap?) — Adds an Excel-native chart anchored at position (single cell). chart_type: column, column_stacked, column_percent_stacked, bar, bar_stacked, bar_percent_stacked, line, line_stacked, area, area_stacked, pie, doughnut, scatter, scatter_line, bubble, radar, radar_filled, stock, column_3d, bar_3d, line_3d, area_3d, pie_3d, waterfall, funnel, histogram, pareto, box_whisker, treemap, sunburst, region_map. series: [{values, name?, bubble_sizes?, color?}] where values is one row or column of numbers in A1 ("B2:B13", table references allowed). categories: labels range (x values for scatter/bubble). Charts float over the grid (no spill errors); the anchor is nudged to free space if the cell would cover content. Returns the chart_id for update_chart/delete_chart. • update_chart(chart_id, sheet_name?, chart_type?, position?, series?, title?, name?, categories?, legend?, axis and 3d options as in add_chart) — Changes an existing chart; omitted arguments leave that part unchanged. Chart ids are returned by add_chart and listed in the file context under "Native Chart". • delete_chart(chart_id, sheet_name?) — Removes a chart. Pivot Tables: • set_pivot_table(action, pivot_table_name?, sheet_name?, source?, destination?, rows?, columns?, values?, filters?, layout?, values_layout?, row_grand_total?, column_grand_total?, subtotal_position?) — Creates ("create"), reconfigures ("update"), or removes ("delete") a PivotTable: a live cross-tabulation that groups source rows and aggregates values, recomputing when the source changes. Prefer it over SUMIFS or a Python groupby for "totals by category" requests. Reference source columns by header name, not letter. source (create): A1 range with a header row or a table name. destination (create): "new_sheet" (default) or a top-left cell. rows/columns: [{field, label?, sort?, show_totals?, group_by?, numeric_interval?}]. values (at least one): [{field, aggregation?, name?, show_as?, number_format?, decimals?, visual?}]. filters: [{field, include?, exclude?}]. For update: null leaves an area as it is, an empty array clears it — send only the areas you're changing. pivot_table_name is required for update/delete; names are listed in the file context. The report's cells are read-only; change it with this action. See the "pivot_table" topic for details. Validation: • add_logical_validation(selection, show_checkbox?, ignore_blank?, sheet_name?) — True/false validation with optional checkbox. • add_list_validation(selection, list_source_list?, list_source_selection?, drop_down?, ignore_blank?, sheet_name?) — list_source_list: comma-separated values ("Item 1, Item 2"). list_source_selection: A1 cell reference. Use one, not both. • remove_validation(selection, sheet_name?) — Remove all validations from the selection. Conditional Formatting: • update_conditional_formats(sheet_name, rules) — rules: [{action, id?, selection?, type?, rule?, bold?, italic?, underline?, strike_through?, text_color?, fill_color?, apply_to_empty?, color_scale_thresholds?, auto_contrast_text?}]. action: "create"/"update"/"delete". type: "formula" (apply styles when formula is true) or "color_scale" (gradient colors). For formula type: rule examples: "A1>100", "ISBLANK(A1)", "AND(A1>=5,A1<=10)". For color_scale: thresholds: [{value_type: "min"/"max"/"number"/"percent"/"percentile", value, color}]. For table columns use table references instead of A1 ranges. For delete: only id required. History: • undo(count?) — Default 1. • redo(count?) — Default 1. Batch: • batch(actions) — actions: [{action, params}]. Runs writes sequentially through this same tool; errors short-circuit the batch. `action` may be any name from this reference. Nested `context` items are allowed and returned alongside the writes.
    Connector
    Destructive
    No auth
  • Side effect when confirmSend is true: sends one current draft email or Slack message for review, but does not publish, schedule, or edit the workflow. Use after authoring or inspection when the user wants to verify an important message before publishing. Returns sent-test details, app URLs, a confirmation request, or a clarification request with user-facing message choices. If the test has no data because row level security hides a source table's rows from Dreamlit, returns error code table_rows_hidden_by_rls with unreadableTables[].fixSql to run, or ask the user to run, in the Supabase SQL editor. Do not expose test target ids as copy; ask users to choose by message label and confirm before sending.
    ConnectorNo auth
  • Checks whether an agent's spending authority is real, live and large enough, before you do work for it. Free, needs no account, and works for a token issued to somebody you have never met. Returns the remaining budget, the scopes, and whether anything above it in the chain has been revoked. Use this instead of trusting a claim: the answer is signed, so you can keep it.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server that lets AI coding agents (Claude Code, Cursor, Cline) audit Supabase projects for security misconfigurations AND apply the fixes — without leaving the agent. Tools: audit_project, list_findings, preview_fix (BEGIN/ROLLBACK safety), apply_fix (with confirmation), apply_all_fixes (transactional bulk). Closes the audit-fix loop entirely in the agent — other Supabase scanners only report.
    5
    4 npm
    1
    MIT

Matching MCP Connectors

  • Start charging for an MCP server the user owns. Use when they want to monetize, sell, charge for, get paid for, put a price on, or make money from a server, API or tool. Buyers pay their wallet DIRECTLY on-chain — PayGate never holds the money, so there is no payout to wait for, no balance to withdraw and no commission taken. Their server is never modified and needs no payment code. Tools are imported automatically, so it must be publicly reachable over HTTPS and answer tools/list. Returns a proxy URL and a secret api_key shown only once; save it, every other seller tool needs it.
    ConnectorNo auth
  • Fetch one page of posts from a single subreddit, the community-monitoring primitive. subreddit_name is the name without the r/ prefix. sort defaults to the subreddit's own front-page order (best); use sort=new for monitoring. sort=top and controversial need a range, but the window is currently not applied upstream on this feed: top returns the subreddit's all-time top posts whatever range says (time-windowed tops are a known gap here; reddit_search's range DOES work for keyword queries). Costs 4 credits per page; a cursor page is a NEW call priced the same way. Reddit splices about one promoted ad into every feed page; these are dropped by default, so set include_promoted=true only when ads ARE the data you want (ad intelligence, who targets this community) -- kept ads carry is_promoted=true. Returns post summaries (title, author, upvotes, comment_count, created_at, permalink, id) with a cursor for older posts; bodies and discussions come from reddit_get_post with the returned ids. For keyword search across all of Reddit use reddit_search; this tool takes no query.
    ConnectorOAuth
  • Fetch full post content for up to 100 Reddit posts by their t3_ ids in one call -- the follow-up loop after reddit_search or reddit_get_subreddit_posts. Costs 4 credits for up to 10 ids, +1 credit per further 10 ids; every post comes back with its full body text. With exactly ONE id you may set detail to 'full' for +4 credits to also get the discussion tree (comments flattened in tree order with depth, about 200 per page, with a comments_cursor to continue), or pass comment_id (a t1_ id, also +4 credits) to fetch one specific comment in its post context. Post ids come from the other Reddit tools or from reddit_resolve_url on a post URL. Not for discovering posts; search first, then batch-fetch here.
    ConnectorOAuth
  • Fetch one page of an X account's timeline. identifier is a screen name, profile URL, or numeric id (auto-detected). mode picks the view: posts (default) is the account's own tweets, posts_and_replies includes their replies, highlights is the account's pinned highlights tab. include_retweets (default true) filters retweets out when false. Costs 4 credits per page; a cursor page is a NEW call priced the same way. Returns tweet summaries with engagement counts and a cursor for older tweets. Use this for 'what has X been posting', voice checks before outreach, or drafting replies in an account's register. For keyword search across all of X use x_search; for one specific tweet you already have, x_get_tweet.
    ConnectorOAuth
  • Purpose: return the historical series of the layered rCB index for one grade tier - period-by-period assessed benchmark price, period-on-period change, anchor, adjustment factor and verification factor. Guidelines: grade defaults to P2 in the CN region; set start_date and end_date as YYYY-MM to slice a window; pair with get_rcb_index for the current cross-section and get_price_trend for category-level trends. Limits: index points only - dimensionless, non-tradable, and never to be converted into an absolute price; early periods may carry an anchor carried forward from an earlier month, and the output flags when this happens. Ex: get_grade_trend(grade='P2'), get_grade_trend(grade='P1', start_date='2025-12', end_date='2026-09').
    ConnectorNo auth
  • Purpose: the end-of-life tyre (ELT) collection topic for the rCB supply chain - policy targets, the 2026 standard system, the collection-network build-out, the processing value ladder (retreading > recycled rubber > pyrolysis) and market-size figures, with official sources labelled per record. Guidelines: call with no arguments for the full topic, or pass topic (policy/standard/network/ladder/market) to focus one section; pair with get_elt_price_index (category G-ELT) for collection prices and get_feedstock_overview for arisings. Limits: policy and standard records are sourced from official documents; market-size figures are public-information compilations and labelled as such; does not return prices. Ex: 'China end-of-life tyre recycling policy 2030 target', 'ELT collection network China', 'scrap tyre pyrolysis standards 2026'.
    ConnectorNo auth
  • Files a concierge switch request with the complete contract data in one call. Intended for autonomous agents that already hold the user's full profile, IBAN and a standing authorization; in a conversation with a person, start-booking opens a form in which the user enters these data. Commerce for Agents stores the request encrypted and an operator submits the contract application to the provider; the user receives a confirmation email at once and the provider's contract documents later. There is no self-service checkout link. Input: the `ref` of the chosen offer plus the contract data. Postal code and city come from the comparison; previousProvider, previousCustomerNumber and meterNumber are printed on the last energy bill. `consent: true` attests that the user explicitly agreed to (1) Commerce for Agents submitting the contract on their behalf, (2) the SEPA direct-debit mandate for the given IBAN and (3) the privacy policy at commerceforagents.com/privacy, either by an explicit yes in the conversation or by a standing authorization given to the agent. The response contains nextSteps for the user.
    Connector
    Destructive
    No auth
  • Check whether one AI or developer API provider (OpenAI, Anthropic, Gemini, Mistral, Groq, GitHub, Stripe, Cloudflare, Vercel, Supabase, Twilio, ~40 total) is up, degraded, or down right now. Use before calling that provider, or right after 5xx/429/timeouts, to choose retry, wait, or a fallback. Not for a model id (check_model_deprecation), the filtered change feed (list_recent_api_changes), or the daily rollup (get_digest). Returns summary, verdict (up|degraded|partially down|down|unknown), recommended_action, incidents, affected_components, checked_at, and freshness; status is rechecked about every 5 minutes. An unknown provider id returns 404 unknown_provider. Example: {"provider":"openai"}. Free within the daily quota, then $0.003 via x402. Alias: get_status.
    ConnectorNo auth
  • Start a Brain document file upload (PDF, DOCX, TXT or Markdown, 10 MB max): returns a signed upload_url that the client PUTs the raw file to, with the returned content-type header, and an upload_id valid for 2 hours. Then call aidelly_complete_brain_document_upload with the upload_id. Works only for clients with direct network access to Supabase storage, such as Claude Code or a local CLI; the hosted server hides it from browser-sandboxed chat clients, which use aidelly_add_brain_document instead. Requires workspace settings permission. Retry-safe with the same idempotency_key.
    ConnectorNo auth
  • Check a SEQUENCE of proposed actions against one mandate. Returns {submitted, allowed, denied, breach_by_rule, fingerprint}. Use for a whole plan or batch, not a single action — use drift_check for that. The fingerprint is the point: rewriting or reordering any earlier decision changes the hash, so tampering with history becomes visible instead of silent. Do NOT use it to execute the actions, or as evidence of what actually happened. It reports what was PROPOSED against a mandate you supply. Read-only. Idempotent for a fixed action list. Amounts in integer minor units, as in drift_check.
    ConnectorNo auth
  • For you, the agent, right after your app connects: a short multilingual reading puzzle (5 min, one attempt). Then call finish_signup. [needs bearer token with scope: read]
    ConnectorNo auth
  • Bots cannot do the selfie check. This returns a one-time 30-minute link for your human to open on a phone with a camera; the check runs on their device (MediaPipe), nothing is uploaded. Poll get_verification_status for the result.
    ConnectorNo auth
  • Use this when the user wants a word search puzzle (word find, word search maker, printable word search for kids or a class) from a list of words. Accepts 5-40 words for a letter grid: right and down for easy, adding diagonals for medium, all 8 directions including backwards for hard; checks placed words for duplicate occurrences and reports words left out. Shows a playable puzzle and returns a printable PDF with an answer key. Not for crosswords (use generate_crossword) and does not find words in a grid the user already has.
    ConnectorNo auth
  • Calculate professional-athlete tax for one NFL season with the Jock Taxes engine. Ask the user for a missing team or salary. Do not invent team codes, seasons, salaries, or filing status. Call list_tax_calculator_inputs for allowed values. Send salary when the user has one season total taxed entirely as duty-day pay. Send base_salary plus optional signing_bonus and performance_bonus to match the site Salary + Bonuses form. Do not send salary together with base_salary or a bonus. exempt_signing_bonus_from_jock_tax defaults to true for a split, so the signing bonus is taxed only in the player's domicile. performance_bonus is included only when include_performance_bonus_in_jock_tax is true. art_xvi4_inducement_sb applies to an exempt signing bonus paid by a Canadian club to a U.S. resident. Present the result as a calculation, not as tax or legal advice. Required before this call: team, and salary or base_salary. Match a player with list_team_players only after league, team, and season_id are known. Repeat inputs and defaults from the result in the reply. On NFL, other_duty_day_pay is added to the duty-day base and other_inducement_pay is added into the signing bonus. Send those with base_salary, not with a single season total. Results are income tax only unless the user asks for take-home: then send include_payroll_taxes, agent_fee_pct, retirement_contribution (401(k), or RRSP on a Canadian club) or rca_contribution (Canadian clubs), and report result.net_pay. Comparisons then match on net_pay.net_economic, which counts an RCA after its estimated payout tax (rca_payout_tax_rate; default 25% Canadian withholding on the US-duty-day share and the US federal marginal rate on the rest, or 25% on all of it for a US person).
    ConnectorNo auth
  • Calculate professional-athlete tax for one NBA season with the Jock Taxes engine. Ask the user for a missing team or salary. Do not invent team codes, seasons, salaries, or filing status. Call list_tax_calculator_inputs for allowed values. Send salary when the user has one season total taxed entirely as duty-day pay. Send base_salary plus optional signing_bonus and performance_bonus to match the site Salary + Bonuses form. Do not send salary together with base_salary or a bonus. exempt_signing_bonus_from_jock_tax defaults to true for a split, so the signing bonus is taxed only in the player's domicile. performance_bonus is included only when include_performance_bonus_in_jock_tax is true. art_xvi4_inducement_sb applies to an exempt signing bonus paid by a Canadian club to a U.S. resident. Present the result as a calculation, not as tax or legal advice. Required before this call: team, and salary or base_salary. Match a player with list_team_players only after league, team, and season_id are known. Repeat inputs and defaults from the result in the reply. Results are income tax only unless the user asks for take-home: then send include_payroll_taxes, agent_fee_pct, retirement_contribution (401(k), or RRSP on a Canadian club) or rca_contribution (Canadian clubs), and report result.net_pay. Comparisons then match on net_pay.net_economic, which counts an RCA after its estimated payout tax (rca_payout_tax_rate; default 25% Canadian withholding on the US-duty-day share and the US federal marginal rate on the rest, or 25% on all of it for a US person).
    ConnectorNo auth