Skip to main content
Glama
741,519 tools. Updated 2026-11-04 05:16

"A server for displaying charts (MCP server)" matching MCP tools:

  • Convert a PDF into structured content (tables, charts, formulas, headings, body text) using a two-stage pipeline (layout detection, then a vision-language model) rather than a single VLM call on the raw PDF -- calling a VLM on a raw PDF directly is a known-unreliable pattern for numeric tables. Measured accuracy (500-page real-world benchmark of government/corporate reports, ~51,000 table values checked): tables 95.2% digit-exact, body text 88.8%. This tool reads PDFs a VLM cannot read directly, including scanned pages and PDFs with corrupted/garbled text layers (common in older Japanese academic PDFs). For scanned Japanese documents the numbers hold up (99.4% on the same benchmark). For scanned Arabic, body text does NOT: characters are dropped mid-sentence and quantities can turn into different quantities, so body blocks from scanned Arabic are always flagged confidence:"estimated" -- tables in the same documents stayed exact in our measurement. Strong on Japanese-language documents specifically; the accuracy figures above were measured on Japanese material and are not a claim about every language. Chart values are extracted but are best-effort estimates (about 52% exact match, excluding axis tick labels) and are always flagged confidence:"estimated" in the result -- do not treat estimated chart numbers as authoritative. This is a PAID, ASYNCHRONOUS, per-page-billed operation: credits are reserved from the caller's PDFIntact balance before processing starts, and the response's _meta.credits_remaining shows the balance right after reservation. Processing takes real wall-clock time (roughly 7 seconds/page; a 500-page PDF takes about 42 minutes including a multi-minute cold start), so this tool returns a job_handle immediately without waiting -- call get_result with that job_handle to poll for completion instead of calling convert_pdf again. Always pass idempotency_key; reuse the exact same value if you retry the same request, otherwise retries can double-charge and double-process. Provide the PDF either as a public https URL (source.type="url", up to ~200MB) or inline base64 (source.type="base64", up to ~20MB) -- prefer the URL form for large files. Requires sign-in (OAuth): this session is not authenticated, so calling this tool will fail until the PDFIntact account is connected and authorized.
    ConnectorNo auth
  • Returns the catalog of supported blockchain assets, ticker symbols, and network standards. USAGE GUIDELINES: - USE WHEN: Discovering supported coins, validating tickers, or displaying network options prior to calling quote or limit tools. - DO NOT USE: Calculating rates, exchange amounts, or network fees (use 'get_swap_quote' or 'get_pair_limits_and_fees'). PARAMETER INTENT & AGENT WORKFLOW: - Context Window Optimization: Supplying 'privacy' or 'stablecoins' filters the catalog to a specific functional class, reducing token consumption when prompting users; omitting or passing 'all' returns the full multi-chain roster. - Output Consumption: Tickers returned in 'currencies[].ticker' are guaranteed canonical symbols accepted by 'get_swap_quote' and 'get_pair_limits_and_fees'. BEHAVIOR & SPECIFICATIONS: - In-memory response (<5ms latency) returning up to 15 non-paginated asset records with 100% availability. - Strictly read-only without external network dependencies.
    ConnectorNo auth
  • Returns the catalog of supported blockchain assets, ticker symbols, and network standards. USAGE GUIDELINES: - USE WHEN: Discovering supported coins, validating tickers, or displaying network options prior to calling quote or limit tools. - DO NOT USE: Calculating rates, exchange amounts, or network fees (use 'get_swap_quote' or 'get_pair_limits_and_fees'). PARAMETER INTENT & AGENT WORKFLOW: - Context Window Optimization: Supplying 'privacy' or 'stablecoins' filters the catalog to a specific functional class, reducing token consumption when prompting users; omitting or passing 'all' returns the full multi-chain roster. - Output Consumption: Tickers returned in 'currencies[].ticker' are guaranteed canonical symbols accepted by 'get_swap_quote' and 'get_pair_limits_and_fees'. BEHAVIOR & SPECIFICATIONS: - In-memory response (<5ms latency) returning up to 15 non-paginated asset records with 100% availability. - Strictly read-only without external network dependencies.
    ConnectorNo auth
  • Submit exactly one hosted application after prepare_quick_apply returns ready and the job seeker explicitly confirms the complete preview in a later turn. Pass the private submitArguments unchanged without displaying them, including prepared_snapshot. The packet contains user-facing references and a server-generated snapshot fingerprint, never database IDs. The server rejects changed contact data, resumes, job details, questions or answers and atomically rechecks authoritative versions, ownership and job availability before creating the snapshot. A stale preview requires preparation and new confirmation. This irreversibly shares the application snapshot with the employer and may send employer notification email. It never sends candidate email and never accepts a confirmed boolean. Copy review_consent_version from the current preparation; never reuse an older preview that omitted the consent disclosure. Assistant Quick Apply is limited to three new applications per job seeker per hour. After an uncertain result, check list_my_applications and retry only the exact same arguments if the application is absent.
    Connector
    Destructive
    OAuth
  • Read-only queries on the open spreadsheet. No data is modified. Safe to auto-approve. Call as {"action": "<name>", "params": {...}} — per-action params are listed in the Action Reference below. Special actions (not shown in the action enum): • batch — {"action": "batch", "params": {"actions": [{"action": "<name>", "params": {...}}, ...]}}. Runs reads in parallel; individual failures are reported per-entry without short-circuiting. • 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 • get_cell_data(selection, page?, sheet_name?) — Returns cell values for a selection in A1 notation. Supports comma-separated ranges to fetch multiple areas in ONE call, including across different sheets. Examples: "A1:B10, D1:E10", "TableName, OtherTable", "'Sheet1'!A1:B10, 'Sheet2'!C1:D10". Table names are globally unique so they work without sheet prefixes. For cell ranges on other sheets use 'SheetName'!Range. Only use when you need the full dataset (aggregations, lookups, analysis). The file summary already includes sample rows. Results may be paginated — use page (0-based) for additional pages. • has_cell_data(selection, sheet_name?) — Check if any cells in a selection have data. Returns true if ANY cell contains data. Use before creating/moving tables or code to avoid spill errors. All ranges MUST be on the same sheet. • get_code_cell_value(code_cell_position?, code_cell_name?, sheet_name?) — Get full code from an existing Python, JavaScript, or connection code cell. Do NOT use for formula cells — formulas are already in get_cell_data results and the file summary. • get_text_formats(selection, page?, sheet_name?) — Get text formatting info. Use table column references for tables ("Table_Name[Column Name]"). Results may be paginated. • get_validations(sheet_name?) — Get all validations in a sheet. • get_conditional_formats(sheet_name) — Get all conditional formatting rules. Use to check existing rules before creating/updating/deleting. • text_search(query, case_sensitive?, whole_cell?, search_code?, regex?, sheet_name?) — Search for text in cell outputs. Supports regex when enabled (e.g., "\d+", "^hello", "foo|bar"). Searches cell outputs only, not code. Booleans default false. • get_sheet_info() — List all sheets and names. • get_spreadsheet_context(sheet_name?, include_errors?) — Full context snapshot of the file. • read_data(selection, sheet_name?, max_rows?) — Read cell data as compact CSV. Auto-tiers: returns all rows for small/medium data (<5000 rows), head+tail preview for large data. Preferred over get_cell_data for most reads. • outline(sheet_name?) — Structural map of the file: sheets, bounds, tables, code cells, charts, connections, errors. Use to understand file layout before reading data. • dependencies(position, sheet_name?, direction?) — Trace cell dependencies. direction: "forward" (what this cell reads), "reverse" (what depends on this cell), or "both" (default). • export_pdf(options?) — Export the file as a PDF with Excel-parity print semantics. Returns {mime_type, size_bytes, data_base64}. options is a camelCase object: {sheetIds?: [id], fileName?, pageSetup?: {paperSize ("letter"|"legal"|"tabloid"|"a3"|"a4"|"a5"|...), orientation ("portrait"|"landscape"), margins {left,right,top,bottom,header,footer} (inches), scaling ({type:"zoom",percent} or {type:"fitTo",width?,height?}), pageOrder ("downThenOver"|"overThenDown"), centerHorizontally?, centerVertically?, printGridlines?, printHeadings?, header/footer {odd:{left,center,right}, even?, first?} with Excel codes (&P page, &N total, &D date, &T time, &F file, &A sheet, &B bold)}, sheetOptions?: {"<sheetId>": {pageSetup?, printArea? ("A1:F20"), repeatRows? ([1,2]), repeatCols?, rowBreaks?, colBreaks?}}}. Omit options for sensible defaults (letter portrait, 100% zoom, all sheets). • list_connections(team_uuid?) — List all database connections in a team (PostgreSQL, MySQL, MS SQL, Snowflake, BigQuery, Mixpanel, Google Analytics, Plaid, etc.). Returns each connection's uuid, name, and type. team_uuid is optional — if omitted, the user's only team is used; multi-team users must pass it. Call this BEFORE get_database_schemas or set_sql_code_cell_value to discover the connection_ids and connection types you need. • get_database_schemas(connection_ids, connection_type, team_uuid) — Get table/column schemas for database connections. Always call before writing SQL. Get connection_ids from list_connections. connection_type: POSTGRES, MYSQL, MSSQL, SNOWFLAKE, BIGQUERY, COCKROACHDB, etc. • list_agent_connections(team_uuid?) — List the team's ready Agent Connections (third-party REST API bindings). Returns each connection's uuid, name, service, base URL, auth pattern, and `{{SECRET_NAME}}` references to use in fetch code. team_uuid is optional — if omitted, the user's only team is used; multi-team users must pass it. Reference secrets via `{{SECRET_NAME}}` in Python/JavaScript fetch code; the connection proxy substitutes team secret values at request time. • inspect_agent_connection(connection_id, team_uuid?) — Get the full schema (resources, endpoints, fields, docs URLs) and plan for one ready Agent Connection by uuid (from list_agent_connections). Call BEFORE writing fetch code against a connection so you don't guess at endpoints. team_uuid is optional with the same single-team fallback as list_agent_connections. Batch: • batch(actions) — actions: [{action, params}]. Runs reads in parallel through this same tool; per-entry failures are reported in the result without short-circuiting the batch. `action` may be any name from this reference. Nested `context` items are allowed and returned alongside the reads.
    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

Matching MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A modern Python MCP server for rendering customizable charts (line, bar, pie, scatter, area, combined dashboards) with Plotly, supporting export to PNG, SVG, and base64, and terminal charts with ANSI output.
    9
    1
    MIT

Matching MCP Connectors

  • Read-only market charts, OHLC, backtests and a view of your connected broker accounts

  • Energy-Charts (Fraunhofer ISE) MCP — European electricity generation, prices, and capacity.…

  • <tool_description> Initiate a purchase for a product found via nexbid_search. Returns a checkout link that the user can click to complete the purchase at the retailer. The agent should present this link to the user for confirmation. </tool_description> <when_to_use> ONLY after user has expressed clear purchase intent for a specific product. Requires a product UUID from nexbid_search or nexbid_product. ALWAYS confirm with user before calling this tool. </when_to_use> <combination_hints> nexbid_search (purchase intent) → nexbid_purchase → present checkout link to user. After purchase → nexbid_order_status to check if completed. Use checkout_mode=wallet_pay when the user has a connected wallet with active mandate. </combination_hints> <output_format> For prefill_link (default): Checkout URL that the user clicks to complete purchase at the retailer. For wallet_pay: Intent ID and status for mandate-based authorization. Include product name and price for user confirmation. </output_format>
    ConnectorNo auth
  • Returns the Jaimini layer of one birth chart: the upapada lagna (UL, the classical marriage anchor) with its sign, lord and cited reading, all twelve arudha padas (A1-A12) with sign and life domain, the eight charakarakas (Atmakaraka, Amatyakaraka and the rest) with the graha holding each, and the karakamsha lagna. The result also lists the classical texts the upapada reading is cited from. Use this only when Jaimini terms are asked for by name -- upapada, arudha, charakaraka, karakamsha -- or for marriage questions read the Jaimini way. The Parashari layer (grahas, houses, dasha, yogas) is in get_janam_kundali; get_kundli_match is the tool for scoring two charts against each other. Read-only deterministic computation (Swiss Ephemeris, Lahiri ayanamsa); no writes, no auth. Rate limits are counted per server instance: at least 30 requests/min/IP on this endpoint, plus a shared engine budget of at least 60/min/IP across all birth-chart tools. If the engine cannot attach the Jaimini layer the result comes back with partial: true rather than with invented values.
    ConnectorNo auth
  • Restore one dismissed domain (domain) or a batch (domains): it leaves the tracker dismissed list and becomes eligible for discovery again, suggested anew while the engines keep citing it (accepting it stays a distinct move). The counterpart of dismiss, for when the user changes their mind. Idempotent and never refused: restoring a domain that was not dismissed simply leaves it eligible. The answer carries restored as the domain for a single call, the list for a batch.
    ConnectorNo auth
  • Use this when someone wants to choose between Clarity decision mapping for a difficult decision and MindScan single-episode reflection for a response they suspect may recur. Returns a no-charge reflection mode, a clarifying question, or a safety boundary. Do not use for diagnosis, emergencies, or legal, medical, financial, hiring, or insurance decisions.
    ConnectorNo auth
  • List the 23 divisional (varga) charts available via 'get_divisional_chart'. Returns, for each chart, the 'request_as' value to pass as the 'varga' argument (e.g. 'D-9'), its 'name' (e.g. Navamsa) and 'purpose' (what life area it analyses — marriage, career, children, etc.). Use this to choose the right chart for a question, then call 'get_divisional_chart' with that varga. Takes no birth details. Data only — no interpretation is included.
    ConnectorNo auth
  • Persist changes to an existing cost-chart annotation event already saved in Costory. This is a write (not a preview): it overwrites the event's name, date, description, tags, metadata, team scope, and/or the annotation chart in the database. It does not create a new event, does not send Slack/Teams/email, and does not archive or delete the event. Use list_events to find the event id first. All fields except eventId are optional — omit a field to keep the stored value. Metadata is merged into existing values; `source` is preserved on the event column and should not be supplied. Tags replace the full tag list. Name, date, description, tags, metadata, and `scopeId` need no widget. `scopeId` (same id as list_teams) sets the event scope and leaves the chart unchanged. Omit it to keep the saved scope. `null` clears it. An id replaces it. If both `scopeId` and `widget.scopeId` are sent, `scopeId` wins. `widget` replaces the annotation chart wholesale, or creates one if none exists. If you send `widget`, send the full chart on the first call, written from scratch exactly as for query: `title`, `queries`, and `datePreset` or `from`/`to`. Set `chartType` on every series (BAR, LINE, AREA, WATERFALL, or TABLE). Omitting it stores LINE and replaces the previous chart type. `widget.scopeId` alone is invalid. list_events returns chart id and title only, not the stored queries, so do not patch or echo the current chart. Omit `widget` to leave the chart unchanged. A full widget without `widget.scopeId` keeps the saved event scope unless top-level `scopeId` is set. `widget.scopeId: null` clears the event scope when top-level `scopeId` is omitted. If the event has multiple charts, pass widgetEventId. EXAMPLE: "Add a PR link to yesterday's deploy event" → { eventId: "clx9abc", metadata: { link: "https://github.com/acme/app/pull/99" } } EXAMPLE: "Fix the description on the migration event" → { eventId: "clx9abc", description: "Migrated prod cluster; temporary 2-day cost spike from dual-running nodes." } EXAMPLE: "Scope the migration event to the platform team" → { eventId: "clx9abc", scopeId: "<team scope id from list_teams>" } EXAMPLE: "Clear the event scope" → { eventId: "clx9abc", scopeId: null }
    Connector
    Destructive
    OAuth
  • Fetch a LIVE Amazon search-results page (SERP) right now — the ranked organic + sponsored listings a shopper would see this minute for a query, with position, ASIN, title, price, rating and badges. Use when the user wants CURRENT ranking/visibility: 'who ranks for "dog bed" on Amazon right now', 'is my ASIN on page 1 for this keyword', 'what's sponsored vs organic for this search'. This is a real-time fetch (takes ~10-40 seconds) — for warehouse keyword search use search_products; for buying advice use shopping_search. Amazon marketplaces only; up to 3 pages per call.
    ConnectorNo auth
  • Test how much a recorded birth time can actually be narrowed, and against what. Two modes: * **No events** — scans the uncertainty window and reports how many genuinely distinct charts it contains, what differs between them, and what does not. Use this FIRST to find out whether rectification is even worth attempting. * **With events** — scores each candidate against dated life events and checks the result against a null model of randomised dates. This tool does NOT return "your real birth time is X", and you should not present it that way. The unit of the answer is the **variant** — a group of minutes producing an identical chart structure. Preferring one minute over its neighbour inside a variant is fitting arithmetic, not evidence. Read `verdict.usable` before quoting anything else. Fewer than three independent, well-dated events fits the events rather than the birth time, and the verdict will say so. Args: dob, tob, tz, lat, lon: Birth data, as for create_chart. `tob` is the centre of the window, not an assertion. events: Dated life events, e.g. [{"date": "2015-06", "type": "job_change"}, {"date": "2019-03", "type": "marriage"}]. Dates may be YYYY-MM or YYYY-MM-DD. See `event_types` in the error response for the accepted vocabulary. half_width_minutes: Half-width of the uncertainty window (max 120). step_minutes: Candidate spacing in minutes. ayanamsha: Sidereal zero-point. Costs one full chart computation per candidate, with a minimum of 20 per call — a 30-minute window at 1-minute steps is 61 charts and takes a few seconds. The floor means a very narrow window is not cheaper than one considered call, which is deliberate: probing repeatedly is the wrong way to use this. On the shared public demo a single call is capped at 61 candidates; the refusal names two smaller calls that fit.
    ConnectorNo auth
  • Record the user's body weight, body-fat % or circumferences for one day, when the user states a current measurement. Training goes to log_session, and measurements are read back with get_body_metrics. The app's weight tile and charts and the coaching context read these entries, not the profile's bodyweight field. One entry per date, and recording the same date again ADDS to it: fields left out keep their stored value, new `measurements` or `custom_fields` keys join the existing ones, and a repeated key or field is overwritten, which is how a wrong number is corrected. A field sent as null is cleared. Returns the whole stored entry for that day. There is no delete.
    Connector
    Destructive
    OAuth
  • 【需要登录】列本人需求含取消历史;displaying才是在架可见性,勿从OPEN推断。认领完成态不是整条需求状态,查get_conversation_needs。【组合链】id→update_need/unpublish_need;仅在架传displaying=true,推荐→get_need_recommendations。
    ConnectorNo auth
  • Percent-encode a string with encodeURIComponent so reserved characters survive transport inside a URL. Returns JSON { encoded }. It escapes the structural characters too — : / ? # & = all become %XX — so it is for a single query-string value or path segment, NOT for a whole address you still want to be clickable. This is escaping for URLs only. It is the wrong transform for making binary-unsafe content fit in JSON, an HTTP header or a data URI, which call for Base64 rather than percent-encoding. Reverse it with decode_url.
    ConnectorNo auth
  • Percent-encode a string with encodeURIComponent so reserved characters survive transport inside a URL. Returns JSON { encoded }. It escapes the structural characters too — : / ? # & = all become %XX — so it is for a single query-string value or path segment, NOT for a whole address you still want to be clickable. This is escaping for URLs only. It is the wrong transform for making binary-unsafe content fit in JSON, an HTTP header or a data URI, which call for Base64 rather than percent-encoding. Reverse it with decode_url.
    ConnectorNo auth
  • Use this when the user requests the latest Market Update show, its desk briefing or chapters, e.g. 'What did today's show cover?'. Do not use for live market rankings (research_markets), an arbitrary historical show, Daily News or full archive search. Selection: No arguments: selects the latest actually published edition, which may not be dated today. Use its actual publication time. Presentation: Published briefing and chapter visuals. Refer to the relevant chapter and exact playback link; do not claim video is playing or embedded unless the host confirms it. Evidence: Use /edition and its named children for exact published text/charts. Show figures belong to that edition, not the current market.
    ConnectorAPI key
  • Host a self-contained HTML page at a stable, default-private, shareable URL — the Artifact experience, in-app. Pass **exactly one** of: - `html` — the full page: your `<body>` plus any `<style>`/`<script>`. Unlike documents.create, the page is served **live** (JavaScript runs), so charts, interactivity, and small tools work. - `file_id` — a workspace file whose contents are already the HTML page. - `analytics_card_ids` — ids of saved analytics dashboard cards; the platform re-runs their queries and composes one designed report page (static charts, snapshot at build time). Best way to give someone a shareable analytics report. The page runs in a locked-down sandbox: a dedicated origin + a strict CSP. That means it is **fully self-contained** — it CANNOT call out to the network (`fetch`/XHR/WebSocket are blocked) or load anything from a CDN. Inline all assets: CSS/JS inline, images/fonts as `data:` URIs. Draw charts yourself as inline SVG (no external chart library). `access_level` defaults to `'private'` (viewable only in-app). Set `'shared'` to make the unguessable link itself the capability (anyone-with-link). You can flip this later with artifacts.set_access. Returns `{artifact_id, slug, url, app_url, version, access_level}`. `app_url` always opens for workspace members, in the app. `url` is the public link and is set ONLY for a shared artifact (a private one has no public page: handed out bare, the public link answers "not available"). Republish with artifacts.update — both links stay the same.
    ConnectorAPI key
  • Host a self-contained HTML page at a stable, default-private, shareable URL — the Artifact experience, in-app. Pass **exactly one** of: - `html` — the full page: your `<body>` plus any `<style>`/`<script>`. Unlike documents.create, the page is served **live** (JavaScript runs), so charts, interactivity, and small tools work. - `file_id` — a workspace file whose contents are already the HTML page. - `analytics_card_ids` — ids of saved analytics dashboard cards; the platform re-runs their queries and composes one designed report page (static charts, snapshot at build time). Best way to give someone a shareable analytics report. The page runs in a locked-down sandbox: a dedicated origin + a strict CSP. That means it is **fully self-contained** — it CANNOT call out to the network (`fetch`/XHR/WebSocket are blocked) or load anything from a CDN. Inline all assets: CSS/JS inline, images/fonts as `data:` URIs. Draw charts yourself as inline SVG (no external chart library). `access_level` defaults to `'private'` (viewable only in-app). Set `'shared'` to make the unguessable link itself the capability (anyone-with-link). You can flip this later with artifacts.set_access. Returns `{artifact_id, slug, url, app_url, version, access_level}`. `app_url` always opens for workspace members, in the app. `url` is the public link and is set ONLY for a shared artifact (a private one has no public page: handed out bare, the public link answers "not available"). Republish with artifacts.update — both links stay the same.
    ConnectorAPI key