settra

Settra is a self-hosted Google Sheets and Google Drive MCP server for querying spreadsheet data with AI.

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноТолько чтение

Что умеет

  • Create Semantic Overlay: Create a new user-approved semantic overlay under overlays/generated and fail if the path already exists. Use only after inspecting relevant connections, cubes, source fields,
  • Get Connection Metadata: Refresh PostgreSQL metadata and return a bounded, paginated source-table catalog for one connected sheet source. The default returns five tables with the first ten columns of
  • Get Collection Context: Load one selected collection's agent instructions, member pipes, durable PostgreSQL destination tables, and available Cube names in one response. Call this once after the user

Какие данные видит

Нужен ли аккаунт

Не нужен: сервер работает без входа

Settra is a self-hosted Google Sheets and Google Drive MCP server for querying spreadsheet data with AI. Connect Google Sheets, CSV, Excel, and Parquet files, keep durable snapshots synchronized, and let MCP clients safely discover datasets and run governed analytics, without exposing raw SQL or Google credentials.

Список инструментов сервера (16)

Технические названия из tools/list. Нужны только разработчикам.

create_semantic_overlayCreate a new user-approved semantic overlay under overlays/generated and fail if the path already exists. Use only after inspecting relevant connections, cubes, source fields, and existing overlays, then running validate_semantic_overlay. Record purpose, originating user requirement, grain, approved assumptions, relationships, metric definitions, evidence, and validation results under each model's meta.settra. After creation this tool waits for the declared models to compile and returns a compact status; compiler diagnostics are included only when compilation is incomplete.
get_connection_metadataRefresh PostgreSQL metadata and return a bounded, paginated source-table catalog for one connected sheet source. The default returns five tables with the first ten columns of each table; generated DDL and source metadata are omitted. Pass include=[] for table summaries only, or include=['columns', 'source_metadata'] for both bounded details. Use search to narrow to one table and column_cursor to continue through wide tables. source_metadata is opt-in and bounded. source_metadata_available is emitted only when true; its absence means no source metadata was reported. The top-level table page returns page.next_cursor for the cursor input; each nested column page returns column_page.next_column_cursor for the column_cursor input. Page objects otherwise omit values that repeat request arguments or returned arrays. Use this before profiling, sampling, or drafting an overlay. The catalog reflects the latest successful dlt sync.
get_collection_contextLoad one selected collection's agent instructions, member pipes, durable PostgreSQL destination tables, and available Cube names in one response. Call this once after the user selects a collection. Continue passing the same collection slug to discovery and query tools for the conversation.
get_cubeFetch one compact semantic definition for a compiled cube or view. The response merges authored Cube YAML with compiled availability and keeps member names, types, meaningful descriptions, SQL, filters, references, relationships, source table or SQL, connection context, and non-default access behavior. Repeated Cube prefixes, duplicate source definitions, empty collections, and default UI metadata are omitted. Use this before creating overlays. When source.path identifies an overlay, use get_semantic_overlay for its full assumptions and evidence.
get_cube_metaSearch a bounded projection of compiled Cube /v1/meta metadata. Results are paginated by cube; include selects compact member collections, and each selected collection is capped by member_limit. Default-valued UI fields, empty collections, request echoes, repeated cube-name prefixes, and compiler identifiers are omitted. Defaults return five cube identities without member collections. Use next_cursor to continue, and get_cube when one cube needs compact, complete semantics. Multi-term search is ranked by partial token matches, not strict AND matching. Example: search='sales forecast', include=['measures', 'dimensions']. This does not reveal overlays that failed compilation.
get_semantic_overlayRead one hand-authored or generated semantic overlay by path. Returns the exact Cube YAML once, compact compile status and model names, and manifest completeness with missing fields. Parsed provenance and full compiled Cube metadata are omitted because they duplicate the YAML; use get_cube for a compiled model's compact semantics. Use this before reusing, extending, debugging, or updating an existing overlay.
list_connectionsList connected Google Drive tabular data without secrets, including source slugs and their separate destination schemas. Use this before inspecting source metadata or drafting source-specific semantic overlays.
list_collectionsList the available logical collections of durable data pipes. Start here when the MCP URL is not pinned to one collection. Ask the user which collection to use, then pass its slug to collection-scoped tools. The response contains compact descriptions, member pipe names, and counts; it does not expose unrelated Cube metadata.
list_cubesDiscover compiled Cube cubes and views through a bounded catalog. By default this returns five high-level cube identities, source labels, and member counts with descriptions capped at 160 characters. Request and compiler echoes are omitted. Use search whenever the request names a sheet, entity, or metric; multi-term search is ranked by partial token matches, not strict AND matching. Start without include. Request bounded member previews only when needed and use next_cursor to continue. Use get_cube for compact, complete semantics for one selected cube. Use list_semantic_overlays for authored overlay provenance or models that failed to compile.
list_semantic_overlaysList authored semantic overlay files, including overlays that are empty, partially compiled, or failed to compile and therefore do not appear in list_cubes. Returns only each path, declared model names, compile status, manifest status, and purpose. Exact YAML and detailed provenance belong in get_semantic_overlay. Use this before creating or extending an overlay to find related or duplicate semantics. scope may be all, generated, or hand_authored.
profile_connection_tableUse this bounded profiler when evaluating candidate dimensions, measures, identifiers, or source-table relationship keys. Do not infer a business relationship solely because fields have similar names; inspect uniqueness, null rates, example values, and overlap before proposing an overlay. Results use a map keyed by column name and omit repeated sample, nullability, and matching source/inferred type fields. Descriptions are omitted by default; set include_descriptions=true to include descriptions capped at 300 characters, or use get_connection_metadata with include=['columns'] for paginated schema descriptions. This tool does not run arbitrary SQL or full-table scans. Rows come from the latest successful durable PostgreSQL snapshot.
query_cubeExecute a bounded Cube REST query against existing compiled semantics. Pass Cube query JSON using measures, dimensions, filters, timeDimensions, segments, limit, offset, order, and timezone. Results contain one data array plus row_count, has_more, limit, offset, next_offset, and an optional total when the query explicitly sets total=true. Pagination uses one extra sentinel row instead of requesting an exact total. Set a stable order when paging. Cube execution internals are omitted. Annotated numeric values are returned as compact JSON numbers, and date-only/business-date time members are returned as YYYY-MM-DD to avoid timezone display shifts. This tool accepts exactly one query object: arrays, Cube data blending, and independent batch execution are not supported. Use separate tool calls for independent queries. limit defaults to 100 rows and is capped at 500. Use this to answer questions and verify saved overlays; raw SQL is not accepted. When execution fails, the tool error identifies the referenced cubes, classifies access, query, and transient failures when possible, preserves a bounded source error, and tells the agent what to surface to the user.
sample_connection_tableReturn a compact bounded row sample from one saved connection table. Column names are returned once and rows are positional arrays. Scalar values are capped at 180 characters; truncated columns are reported explicitly, while truncation fields are omitted when no values were truncated. Use this after get_connection_metadata to inspect real value shapes, identifier formats, timestamp/currency values, null examples, and candidate relationship keys before proposing overlays. Inputs are connection_id, table_name, optional columns, and limit; raw SQL is not accepted. Rows come from the latest successful durable PostgreSQL snapshot.
save_semantic_overlayDeprecated compatibility upsert for overlays/generated. Prefer create_semantic_overlay for a new path or update_semantic_overlay for an existing path so accidental replacement is impossible and updates return a diff. The same inspection, validation, provenance, and explicit user approval requirements apply.
update_semantic_overlayUpdate an existing generated semantic overlay and fail if the path does not exist. Use get_semantic_overlay first, preserve approved provenance, then validate the complete replacement YAML with validate_semantic_overlay using this same path, and obtain explicit user approval. Returns model changes, compile status, and a compact diff summary. Set include_diff=true to return the full unified diff. Hand-authored overlays cannot be modified by this tool.
validate_semantic_overlayValidate proposed Cube YAML without leaving it persisted. Use this after inspect/profile/draft and before asking the user to approve creation or an update. For replacements, set path to the existing generated overlay path so the validator can distinguish an update from a duplicate model. The validator checks declared models, references, and the structured meta.settra manifest for purpose, requirement, grain, approved assumptions, relationships, metrics, and evidence. It performs an ephemeral Cube compile, runs optional Cube REST test_queries, and removes the validation file. valid reports technical success; ready_to_save also requires a complete provenance manifest. Successful validation is compact; compiler and cleanup diagnostics are included when validation fails.