{"apiVersion":"v1","directorySlug":"taller-mcp-b42cfb8ef3","title":"Taller","description":"Taller builds AI-native software and custom solutions for enterprise teams. From intelligent agents to full-stack products, we engineer what’s next.","pageUrl":"https://www.mcpbundles.com/skills/taller-mcp-b42cfb8ef3","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.taller.ai/mcp","hostedMcpUrl":null,"toolCount":50,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"ai.taller/taller-mcp-b42cfb8ef3","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"authenticate","description":"Returns a URL to sign in. Open this URL in your browser to authenticate your account. After signing in, all other tools will work with your account data. You only need to call this once per session. Not needed if the MCP connection already carries a valid token (Authorization: Bearer header) — in that case all tools work immediately.","inputSchema":{"type":"object","required":[],"properties":{}},"logicalName":"authenticate","displayName":"authenticate","title":"authenticate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"logout","description":"Logs out the current authenticated user. After logging out, you will need to call authenticate again to use other tools.","inputSchema":{"type":"object","required":[],"properties":{}},"logicalName":"logout","displayName":"logout","title":"logout","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_projects","description":"Lists projects the user can access — all of them, or only those in one workspace when workspace_id is given. Returns name and description per project. Use this when the user wants to see their existing projects or when you need to find a project ID.","inputSchema":{"type":"object","required":[],"properties":{"workspace_id":{"type":"string"}}},"logicalName":"list_projects","displayName":"list_projects","title":"list_projects","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_project_info","description":"Returns high-level details of a single project: id, name, description and creation date. Does NOT include members (use list_project_members) or tasks (use list_tasks). Use this when the user asks about the current project itself.","inputSchema":{"type":"object","required":[],"properties":{"project_id":{"type":"string"}}},"logicalName":"get_project_info","displayName":"get_project_info","title":"get_project_info","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_project_members","description":"Lists the members of a project with their name, email, effective role (owner/member/viewer) and type (user or agent). Includes workspace members whose scope covers the project. Use this when the user asks who works on the project or what role someone has.","inputSchema":{"type":"object","required":[],"properties":{"project_id":{"type":"string"}}},"logicalName":"list_project_members","displayName":"list_project_members","title":"list_project_members","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_workspace_info","description":"Returns high-level details of a single workspace: id, name, plan, owner name and creation date. Does NOT include members (use list_workspace_members) or projects (use list_projects). Use this when the user asks about the current workspace itself.","inputSchema":{"type":"object","required":[],"properties":{"workspace_id":{"type":"string"}}},"logicalName":"get_workspace_info","displayName":"get_workspace_info","title":"get_workspace_info","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_workspace_members","description":"Lists the members of a workspace with their name, email, role (owner/member/viewer) and join date. Use this when the user asks who is in the workspace or what role someone has.","inputSchema":{"type":"object","required":[],"properties":{"workspace_id":{"type":"string"}}},"logicalName":"list_workspace_members","displayName":"list_workspace_members","title":"list_workspace_members","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_workspace_active_llm","description":"Returns the LLM provider and model configured at the WORKSPACE level, as { provider, model, source }. Use this when the user asks which AI provider or model the workspace uses. For a specific project's effective LLM (project → workspace cascade) use get_active_llm instead.","inputSchema":{"type":"object","required":[],"properties":{"workspace_id":{"type":"string"}}},"logicalName":"get_workspace_active_llm","displayName":"get_workspace_active_llm","title":"get_workspace_active_llm","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_workspaces","description":"Lists all workspaces the authenticated user belongs to. Use this to discover a workspace_id before starting a brainstorming session, or when the user asks about their workspaces.","inputSchema":{"type":"object","required":[],"properties":{}},"logicalName":"list_workspaces","displayName":"list_workspaces","title":"list_workspaces","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"start_brainstorm","description":"Starts a new brainstorming session with the Chiron agent and returns its first reply. Creates a persistent chat in 'brainstorming' mode and sends the first message. The response includes a chat_id — pass it to continue_brainstorm to keep the same conversation going — plus the agent's reply and any suggested tasks/epics (detail_items). Call list_workspaces first if you don't have a workspace_id.","inputSchema":{"type":"object","required":["workspace_id","message"],"properties":{"message":{"type":"string"},"workspace_id":{"type":"string"},"home_project_id":{"type":"string"},"active_project_ids":{"type":"array","items":{"type":"string"}}}},"logicalName":"start_brainstorm","displayName":"start_brainstorm","title":"start_brainstorm","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"continue_brainstorm","description":"Continues an existing brainstorming session by sending another message to a chat created with start_brainstorm. Returns the agent's reply and any suggested tasks/epics. Reuse the chat_id returned by start_brainstorm.","inputSchema":{"type":"object","required":["workspace_id","chat_id","message"],"properties":{"chat_id":{"type":"string"},"message":{"type":"string"},"workspace_id":{"type":"string"},"home_project_id":{"type":"string"}}},"logicalName":"continue_brainstorm","displayName":"continue_brainstorm","title":"continue_brainstorm","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"compare_projects","description":"Compare two or more projects in the same workspace. Returns a structured analysis of similarities and differences in tech stack, epics, tasks, and project types. Use this when the user asks how projects relate, what they have in common, or how they differ.","inputSchema":{"type":"object","required":["project_ids"],"properties":{"project_ids":{"type":"array","items":{"type":"string"}}}},"logicalName":"compare_projects","displayName":"compare_projects","title":"compare_projects","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_active_llm","description":"Returns which LLM provider/model is actively configured for a project, resolved through the project → workspace cascade. Returns { provider, model, source, source_project_id }. The 'source' field tells which level won the cascade. Use this when the user asks which AI provider or model is being used.","inputSchema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"}}},"logicalName":"get_active_llm","displayName":"get_active_llm","title":"get_active_llm","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_analysis_progress","description":"Gets the current progress and status of a specific code analysis. Returns the status, any errors, completed steps with timing, detected tech stack, and repository description.","inputSchema":{"type":"object","required":["project_id","analysis_id"],"properties":{"project_id":{"type":"string"},"analysis_id":{"type":"string"}}},"logicalName":"get_analysis_progress","displayName":"get_analysis_progress","title":"get_analysis_progress","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_analyses","description":"Lists all code analyses for a specific project. Returns each analysis with its repository URL, branch, status, and timestamps.","inputSchema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"}}},"logicalName":"list_analyses","displayName":"list_analyses","title":"list_analyses","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_tasks","description":"Lists tasks for a project. Can optionally filter by epic ID or status.","inputSchema":{"type":"object","required":["project_id"],"properties":{"epicId":{"type":"string"},"status":{"type":"string"},"assignedTo":{"type":"string"},"project_id":{"type":"string"}}},"logicalName":"list_tasks","displayName":"list_tasks","title":"list_tasks","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"show_task_board","description":"Renders an interactive Kanban board widget of a project's tasks grouped by status (backlog, todo, in progress, in review, done). Use this when the user wants to see, visualize, or get an overview of a project's tasks as a board. Optionally filter by epic or assignee.","inputSchema":{"type":"object","required":["project_id"],"properties":{"epicId":{"type":"string"},"assignedTo":{"type":"string"},"project_id":{"type":"string"}}},"logicalName":"show_task_board","displayName":"show_task_board","title":"show_task_board","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_task_details","description":"Shows the full details of a single task — description, acceptance criteria, dependencies, priority, status, assignee, epic and other metadata — in an interactive widget. Use this when the user wants to inspect or open a specific task. Requires the project_id and the task_id (e.g. from list_tasks or the task board).","inputSchema":{"type":"object","required":["project_id","task_id"],"properties":{"task_id":{"type":"string"},"project_id":{"type":"string"}}},"logicalName":"get_task_details","displayName":"get_task_details","title":"get_task_details","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_work_orders","description":"Lists the created Work Orders for the current project, including status, dependencies, acceptance criteria, and open blockers. Use this when the user asks what Work Orders exist or wants to compare project work.","inputSchema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"}}},"logicalName":"list_work_orders","displayName":"list_work_orders","title":"list_work_orders","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_work_order","description":"Returns the full details of one created Work Order, including its problem, intent, requirements, acceptance criteria, dependencies, status, and open blockers. Requires a Work Order ID from list_work_orders or the current project context.","inputSchema":{"type":"object","required":["project_id","work_order_id"],"properties":{"project_id":{"type":"string"},"work_order_id":{"type":"string"}}},"logicalName":"get_work_order","displayName":"get_work_order","title":"get_work_order","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_epics","description":"Lists all epics for a project. Can optionally filter by status.","inputSchema":{"type":"object","required":["project_id"],"properties":{"status":{"type":"string"},"project_id":{"type":"string"}}},"logicalName":"list_epics","displayName":"list_epics","title":"list_epics","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"graph_search","description":"Searches the Manager's entity graph — tasks, epics, modules and projects the manager agent itself created — by keyword or topic. NOTE: this is not the project's distilled memory; for decisions, conventions and learnings from past agent sessions use memory_search.","inputSchema":{"type":"object","required":["project_id","query"],"properties":{"query":{"type":"string"},"project_id":{"type":"string"}}},"logicalName":"graph_search","displayName":"graph_search","title":"graph_search","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"graph_query","description":"Looks up one entity in the Manager's entity graph (tasks/epics/modules the manager agent created) and returns it with all its relationships (DEPENDS_ON, PART_OF, ...).","inputSchema":{"type":"object","required":["project_id","node_name"],"properties":{"node_name":{"type":"string"},"project_id":{"type":"string"}}},"logicalName":"graph_query","displayName":"graph_query","title":"graph_query","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"memory_search","description":"Searches the project's DISTILLED MEMORY (AF-Memory Lab): decisions, architecture, conventions, business rules and gotchas distilled from past agent sessions and accepted by a human. Hybrid semantic + full-text retrieval, ranked. Returns { items: [{ id, memory_type, what, why, where, learned, status, created_at }], count, mode }. An empty result means nothing relevant is stored — it is a valid answer, not an error.","inputSchema":{"type":"object","required":["project_id","query"],"properties":{"limit":{"type":"number"},"query":{"type":"string"},"types":{"type":"string"},"project_id":{"type":"string"}}},"logicalName":"memory_search","displayName":"memory_search","title":"memory_search","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"memory_stats","description":"Returns how much distilled memory the project has in the AF-Memory Lab: { total, by_type: [{ memory_type, count }] }. Cheap; call it once to learn whether the project's memory is worth searching before issuing memory_search queries.","inputSchema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"}}},"logicalName":"memory_stats","displayName":"memory_stats","title":"memory_stats","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_project_context","description":"Returns a high-level summary of the project's knowledge graph: all entity types and counts, and key relationships.","inputSchema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"}}},"logicalName":"get_project_context","displayName":"get_project_context","title":"get_project_context","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_file_profiles","description":"Lists all analyzed files from a code analysis with their business and functional profiles.","inputSchema":{"type":"object","required":["project_id","analysis_id"],"properties":{"status":{"type":"string"},"project_id":{"type":"string"},"analysis_id":{"type":"string"},"criticality":{"type":"string"}}},"logicalName":"list_file_profiles","displayName":"list_file_profiles","title":"list_file_profiles","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_documentation","description":"Gets all generated documentation for a code analysis.","inputSchema":{"type":"object","required":["project_id","analysis_id"],"properties":{"project_id":{"type":"string"},"analysis_id":{"type":"string"}}},"logicalName":"get_documentation","displayName":"get_documentation","title":"get_documentation","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"search_documentation","description":"Searches the generated documentation for a code analysis using semantic search.","inputSchema":{"type":"object","required":["project_id","analysis_id","query"],"properties":{"query":{"type":"string"},"top_k":{"type":"number"},"project_id":{"type":"string"},"analysis_id":{"type":"string"},"document_type":{"type":"string"}}},"logicalName":"search_documentation","displayName":"search_documentation","title":"search_documentation","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"search_code","description":"Searches the code analysis vector database for code chunks or semantic atoms using semantic search.","inputSchema":{"type":"object","required":["project_id","analysis_id","query"],"properties":{"type":{"type":"string"},"query":{"type":"string"},"top_k":{"type":"number"},"project_id":{"type":"string"},"analysis_id":{"type":"string"},"search_type":{"type":"string"},"bounded_context":{"type":"string"}}},"logicalName":"search_code","displayName":"search_code","title":"search_code","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_documents","description":"Lists all documents available in the project.","inputSchema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"}}},"logicalName":"list_documents","displayName":"list_documents","title":"list_documents","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"search_uploaded_documents","description":"Searches all uploaded and processed documents in the project using semantic search.","inputSchema":{"type":"object","required":["project_id","query"],"properties":{"query":{"type":"string"},"top_k":{"type":"number"},"project_id":{"type":"string"}}},"logicalName":"search_uploaded_documents","displayName":"search_uploaded_documents","title":"search_uploaded_documents","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_document_content","description":"Reads the full content of a specific document from project storage.","inputSchema":{"type":"object","required":["project_id","storage_path"],"properties":{"project_id":{"type":"string"},"storage_path":{"type":"string"}}},"logicalName":"get_document_content","displayName":"get_document_content","title":"get_document_content","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_next_task","description":"Retrieves the next logical tasks to work on based on dependencies, clean architecture layer order, feature grouping, and priority.","inputSchema":{"type":"object","required":["project_id"],"properties":{"mode":{"type":"string"},"feature":{"type":"string"},"project_id":{"type":"string"},"completed_task_id":{"type":"string"}}},"logicalName":"get_next_task","displayName":"get_next_task","title":"get_next_task","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_cron_jobs","description":"Lists all cron jobs for a project. Can optionally filter by status.","inputSchema":{"type":"object","required":["project_id"],"properties":{"status":{"type":"string"},"project_id":{"type":"string"}}},"logicalName":"list_cron_jobs","displayName":"list_cron_jobs","title":"list_cron_jobs","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_invitations","description":"Lists all invitations for the current user. Can optionally filter by status.","inputSchema":{"type":"object","required":[],"properties":{"status":{"type":"string"}}},"logicalName":"list_invitations","displayName":"list_invitations","title":"list_invitations","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_skills","description":"Lists all available skills (prompt templates). Returns each skill's id, name, description, and required variables — but not the full content. Use get_skill to retrieve the full prompt content for a specific skill.","inputSchema":{"type":"object","required":[],"properties":{}},"logicalName":"list_skills","displayName":"list_skills","title":"list_skills","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_skill","description":"Gets the full content of a specific skill (prompt template) by its ID. Returns the skill's name, description, required variables, and the complete prompt content with {{variable}} placeholders.","inputSchema":{"type":"object","required":["skill_id"],"properties":{"skill_id":{"type":"string"}}},"logicalName":"get_skill","displayName":"get_skill","title":"get_skill","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ontology_discover","description":"Maps what knowledge the Ontology Layer has for a project: the analyzed repositories (with status), and the available knowledge sources (e.g. code, graph, docs, company_docs, work_items) with their kind and counts. Call this FIRST so you know which `sources` and repos exist before searching. Returns { project_id, repos, sources, providers }.","inputSchema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"}}},"logicalName":"ontology_discover","displayName":"ontology_discover","title":"ontology_discover","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ontology_search","description":"Unified search across ALL of a project's knowledge sources at once (code, knowledge graph, generated docs, company documents, work items — including completed Chiron work orders with their intent, requirements and execution result). Returns ranked, normalized hits: each has { source, provider, ref, title, snippet, score, url, timestamp, resource_uri }. Narrow with `sources`/`providers`/`repo_id` when you know where to look (use ontology_discover to see what's available); otherwise omit them to s","inputSchema":{"type":"object","required":["project_id","query"],"properties":{"query":{"type":"string"},"since":{"type":"string"},"top_k":{"type":"number"},"repo_id":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"providers":{"type":"array","items":{"type":"string"}},"project_id":{"type":"string"}}},"logicalName":"ontology_search","displayName":"ontology_search","title":"ontology_search","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ontology_fetch","description":"Fetches the full object behind a `ref` returned by ontology_search or ontology_discover (a code module, a generated doc, a graph concept, a company document, …). Returns { ref, source, title, content, url, metadata }. Use this to read the complete content after a search surfaces something relevant.","inputSchema":{"type":"object","required":["project_id","ref"],"properties":{"ref":{"type":"string"},"project_id":{"type":"string"}}},"logicalName":"ontology_fetch","displayName":"ontology_fetch","title":"ontology_fetch","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ontology_activity","description":"Returns time-ordered events (newest first) across a project's time-bearing knowledge sources — currently work items (issues/tasks/bugs/user stories), with commits and PRs coming later. Use this for 'what changed recently', 'latest tickets', or any timeline/chronological question, instead of relevance search. Filter with since (ISO-8601), sources, or providers.","inputSchema":{"type":"object","required":["project_id"],"properties":{"since":{"type":"string"},"top_k":{"type":"number"},"sources":{"type":"array","items":{"type":"string"}},"providers":{"type":"array","items":{"type":"string"}},"project_id":{"type":"string"}}},"logicalName":"ontology_activity","displayName":"ontology_activity","title":"ontology_activity","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ontology_database_query","description":"Runs ONE governed read-only query against the project's connected database (the customer's own database, registered in the Ontology Layer). Explore the schema FIRST with ontology_search / ontology_fetch — table cards include columns, primary/foreign keys and validated joins. ontology_discover tells you the engine, which dictates the dialect: a single SELECT for postgresql/mysql/mssql, or a JSON aggregation pipeline ({\"collection\": \"db.coll\", \"pipeline\": [...]}) for mongodb. Writes are rejected s","inputSchema":{"type":"object","required":["project_id","sql"],"properties":{"sql":{"type":"string"},"database":{"type":"string"},"row_limit":{"type":"number"},"project_id":{"type":"string"}}},"logicalName":"ontology_database_query","displayName":"ontology_database_query","title":"ontology_database_query","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ontology_status","description":"Checks this server's connection to the Ontology Layer database surfaces and its privileges. Call this first when any database tool fails in a way that smells like configuration: 401, 403, or a network error. Reports the base URL, whether a service key is configured and accepted, the known DSN aliases, and which optional tools are enabled.","inputSchema":{"type":"object","required":[],"properties":{}},"logicalName":"ontology_status","displayName":"ontology_status","title":"ontology_status","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"connect_database","description":"Registers a database and enqueues its schema ingestion. Returns immediately (202): a worker introspects the schema and builds the metadata catalog in the background, which takes minutes on a real schema. Credentials are validated asynchronously, so a wrong password surfaces in ingestion_status rather than here. Re-registering the same database upserts the credential and re-ingests idempotently. Next step: poll ingestion_status until readiness is 'ready', then call describe_database or ask_databa","inputSchema":{"type":"object","required":[],"properties":{"dsn":{"type":"string"},"name":{"type":"string"},"dsn_alias":{"type":"string"},"project_id":{"type":"string"},"sample_rows":{"type":"number"},"exclude_schemas":{"type":"array","items":{"type":"string"}},"include_schemas":{"type":"array","items":{"type":"string"}}}},"logicalName":"connect_database","displayName":"connect_database","title":"connect_database","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_databases","description":"Lists the databases registered for a project, with coordinates only (passwords are never returned). Start here when you do not know which connection_id to use: every other database tool accepts the id this returns, and can infer it when the project has exactly one database.","inputSchema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"}}},"logicalName":"list_databases","displayName":"list_databases","title":"list_databases","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ingestion_status","description":"Ingestion state of a project's databases, collapsed into a single verdict. `readiness` is one of: not_started, ingesting, building_catalog, ready, degraded, failed. Only 'ready' means ask_database can answer, because the NL-to-SQL funnel treats a table missing from the published catalog as non-existent.","inputSchema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"string"},"wait_seconds":{"type":"number"}}},"logicalName":"ingestion_status","displayName":"ingestion_status","title":"ingestion_status","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"describe_database","description":"Reads the published metadata catalog: what ask_database reasons over. This is the ground truth for a database's semantics, produced by ingestion: business domains, enriched table and column descriptions, inline categorical values, and joins validated by executing them. Consult it before trusting an answer, and to trace a wrong answer back to the metadata that produced it. 404 means no catalog is published yet, a normal state between registering a database and the worker finishing; check ingestio","inputSchema":{"type":"object","required":["project_id"],"properties":{"scope":{"type":"string"},"table":{"type":"string"},"domain":{"type":"string"},"project_id":{"type":"string"},"connection_id":{"type":"string"}}},"logicalName":"describe_database","displayName":"describe_database","title":"describe_database","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ask_database","description":"Answers a natural language question over a registered database. The whole NL-to-SQL funnel behind one call: domain routing, table selection, one-hop expansion over validated joins, generation, static validation, governed read-only execution, and prose synthesis. Returns prose plus the SQL that produced it, the columns, and a rendered preview of the rows. Always show the user the `answer`, and cite `sql` when the number matters: the SQL is the audit trail. A question the database cannot answer co","inputSchema":{"type":"object","required":["question","project_id"],"properties":{"question":{"type":"string"},"row_limit":{"type":"number"},"timeout_s":{"type":"number"},"project_id":{"type":"string"},"include_rows":{"type":"boolean"},"connection_id":{"type":"string"}}},"logicalName":"ask_database","displayName":"ask_database","title":"ask_database","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"run_sql","description":"Runs one governed read-only SELECT against a registered database. Prefer ask_database: it reasons over the catalog, so it knows the real join keys and the semantics of a column. Reach for run_sql when you already know the exact query, or to verify what ask_database generated. The statement is AST-validated upstream (exactly one plain SELECT; writes, multiple statements, SELECT INTO and locking clauses are rejected), LIMIT-clamped and executed in a read-only transaction with a statement timeout.","inputSchema":{"type":"object","required":["sql","project_id"],"properties":{"sql":{"type":"string"},"row_limit":{"type":"number"},"timeout_s":{"type":"number"},"project_id":{"type":"string"},"include_rows":{"type":"boolean"},"connection_id":{"type":"string"}}},"logicalName":"run_sql","displayName":"run_sql","title":"run_sql","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Taller&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AudGFsbGVyLmFpL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Taller%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.taller.ai%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Taller%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.taller.ai%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Taller&connectorUrl=https%3A%2F%2Fmcp.taller.ai%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Taller\" --url \"https://mcp.taller.ai/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/taller-mcp-b42cfb8ef3","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/taller-mcp-b42cfb8ef3/tools/{tool}","mcpServerUrl":"https://mcp.taller.ai/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/taller-mcp-b42cfb8ef3?live=1"}