{"name":"io.github.Tom-R-Main/mcp-server","slug":"tom-r-main-mcp-server","title":"Siftable","description":"Siftable MCP server for governed work, knowledge, calendar, people, datasets, and Vault.","url":"https://mcp.market/server/tom-r-main-mcp-server","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"productivity","tags":["productivity"],"presence":{"score":30,"stars":0,"forks":0,"downloads_week":285,"last_push_at":"2026-09-07T20:20:32.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/execufunction-mcp/mcp-server","website":"https://siftable.io","version":"1.4.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@siftable/mcp-server","version":"1.4.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Siftable API URL (e.g. https://siftable.io)","isRequired":true,"name":"SIFT_API_URL"},{"description":"Personal Access Token (create at Settings → Developer → Access Tokens)","isRequired":true,"isSecret":true,"name":"SIFT_PAT"}]}],"tools":[{"name":"agent_create","description":"Create an agent alias that users can see and agents can use for work queues","write_action":true,"price_micros":0,"input_schema":null},{"name":"agent_disable","description":"Disable an agent alias without deleting its history","write_action":false,"price_micros":0,"input_schema":null},{"name":"agent_get","description":"Get an agent alias by slug or ID","write_action":false,"price_micros":0,"input_schema":null},{"name":"agent_list","description":"List visible agent aliases and capabilities","write_action":false,"price_micros":0,"input_schema":null},{"name":"agent_update","description":"Update an agent alias","write_action":true,"price_micros":0,"input_schema":null},{"name":"agent_work_list","description":"List executable work items assigned to an agent alias. Active work only by default (done/failed/cancelled are hidden unless status names one or includeTerminal is true). Ordered by status (running, claimed, queued, blocked, needs_review), then queueRank descending (higher = earlier; 0 is the default; negative ranks are deferred and sort after 0), then oldest first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ai_connection_status","description":"Show non-secret Model Connection status. Requires ai:connections:use.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ai_generate","description":"Invoke one eligible connected model. Requires ai:invoke and ai:connections:use.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ai_models_list","description":"List eligible connected models. Requires ai:models:read.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ai_usage_get","description":"Get bounded connected-model usage totals. Requires ai:usage:read.","write_action":false,"price_micros":0,"input_schema":null},{"name":"approval_request","description":"Request a single-use governed action approval. Agents cannot approve or bypass consumption.","write_action":false,"price_micros":0,"input_schema":null},{"name":"approval_status","description":"Inspect a governed approval requested by this MCP identity.","write_action":false,"price_micros":0,"input_schema":null},{"name":"calendar_create_event","description":"Create calendar event","write_action":true,"price_micros":0,"input_schema":null},{"name":"calendar_delete_event","description":"Delete a calendar event","write_action":true,"price_micros":0,"input_schema":null},{"name":"calendar_list_events","description":"List calendar events","write_action":false,"price_micros":0,"input_schema":null},{"name":"calendar_update_event","description":"Update a calendar event","write_action":true,"price_micros":0,"input_schema":null},{"name":"capability_describe","description":"Describe one Vault capability using its non-bearer metadata ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"capability_execute","description":"Execute one statically reviewed, typed server-brokered operation. Arbitrary URLs, headers, bodies, proxying, and shell commands are unsupported.","write_action":true,"price_micros":0,"input_schema":null},{"name":"capability_list","description":"List safe metadata for Vault capability handles. No credential or handle bearer material is returned.","write_action":false,"price_micros":0,"input_schema":null},{"name":"code_memory_store","description":"Store a durable codebase fact. Agent-authored stores should include authoringAgent, captureReason, repositoryId, and path/evidence refs. Secrets and raw source dumps are refused.","write_action":false,"price_micros":0,"input_schema":null},{"name":"context_current","description":"Explain the current MCP workspace, project, repository, transport, version, and effective authorization context. Hosted MCP never invents a client checkout; pass an explicit repository/project ID or clientRootHint when needed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_aggregate","description":"Aggregate dataset records with grouped metrics: count, avg, sum, min, max, distinct_count, median, stddev, percentile, ratio. percentile uses a 0-1 fraction and continuous linear interpolation. stddev is population standard deviation. Field-based aggregates exclude null values. Supports HAVING clause.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_analyze","description":"Generate grounded natural-language insights for a dataset slice using aggregates, facets, and evidence rows.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_bucket","description":"Bucket a numeric or date field into ranges and compute metrics per bucket. Provide boundaries or bucketCount for auto-bucketing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_compare","description":"Compare metrics across different segments of a categorical field side-by-side with deltas.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_compute_fields","description":"Compute derived numeric columns using arithmetic plus safe functions like lag, diff, pct_change, rolling_avg, rolling_sum, and ratio.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_create","description":"Create a dataset","write_action":true,"price_micros":0,"input_schema":null},{"name":"dataset_export","description":"Export dataset records as CSV. Supports filtering and sorting.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_facets","description":"Get value distributions (facets) for dataset fields — useful for understanding data shape and filtering options","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_inspect_file","description":"Inspect the structure of a local CSV, TSV, XLS, or XLSX file without creating or changing a dataset. … … Local stdio only: it reads the caller's filesystem.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_join_rows","description":"Join a dataset to itself with alias-scoped fields such as left.Close and right.Close.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_list","description":"List datasets","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_materialize_result","description":"Materialize a derived result into a new scratch dataset.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_mutate","description":"Mutate dataset records (create/update/delete)","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_plot_result","description":"Validate and normalize a lightweight chart payload from a derived dataset result.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_quality_check","description":"Analyze dataset quality with structured missing-value metrics, actionable issues, and bounded repeated-value observations. Repetition is not treated as a defect unless the field is declared unique.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_query","description":"Query dataset records by filters/sorts. Natural-order pagination uses seek cursors; custom-sort pagination uses offset cursors and is not snapshot-stable across concurrent changes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_rank","description":"Rank dataset records by explicit sorts or a weighted numeric formula.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_schema_modify","description":"Modify dataset schema (add/update/delete field)","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_summarize","description":"Summarize dataset identity, schema, lifecycle, formula/relation metadata, and up to five sample rows","write_action":false,"price_micros":0,"input_schema":null},{"name":"dataset_timeseries","description":"Analyze a dataset slice as time series data with lag, rolling windows, drawdown, volatility, correlation, and optional pivoting.","write_action":false,"price_micros":0,"input_schema":null},{"name":"entity_graph","description":"Traverse the entity relationship graph centered on any entity (task, note, person, project, dataset, etc.). Returns connected nodes and edges. A node's status slot carries the record's own status where it has one (tasks: inbox/next_action/in_progress/waiting_for/completed/archived; notes/datasets: active/archived; projects: their status); other types show a type-specific label (organizations: indu","write_action":false,"price_micros":0,"input_schema":null},{"name":"execution_grant_adapter_list","description":"List reviewed local execution adapters, including honest contained, bounded_only, and unsupported threat disclosures.","write_action":false,"price_micros":0,"input_schema":null},{"name":"execution_grant_request","description":"Request a human-approved ephemeral grant for a separately prepared runner public key. The human must verify the displayed key fingerprint and executable digest; this is approval-based trust, not hardware attestation. MCP cannot approve, redeem, or receive plaintext credentials.","write_action":false,"price_micros":0,"input_schema":null},{"name":"execution_grant_status","description":"Inspect safe status and containment metadata for an execution grant. No bearer or credential material is returned.","write_action":false,"price_micros":0,"input_schema":null},{"name":"find_capability","description":"Search the active Siftable capability catalog by natural-language intent, including tools that are unavailable to the current client. Returns separate authorization and runtime availability, schema digests, and exact recovery guidance. Retired source capabilities return recovery cards.","write_action":false,"price_micros":0,"input_schema":null},{"name":"git_blame_symbol","description":"Git blame (local)","write_action":false,"price_micros":0,"input_schema":null},{"name":"note_bulk_delete","description":"Preview an exact note snapshot, then apply only that snapshot with confirm, previewId, expectedSnapshotDigest, and a stable idempotencyKey","write_action":true,"price_micros":0,"input_schema":null},{"name":"note_create","description":"Create a note","write_action":true,"price_micros":0,"input_schema":null},{"name":"note_delete","description":"Delete a note","write_action":true,"price_micros":0,"input_schema":null},{"name":"note_get","description":"Get a single note with full content","write_action":false,"price_micros":0,"input_schema":null},{"name":"note_list","description":"List notes","write_action":false,"price_micros":0,"input_schema":null},{"name":"note_search","description":"Search notes. Full-text matches (PostgreSQL websearch syntax over title and body) rank before semantic neighbors, then literal-substring fallbacks; within each group higher score first, so scores are comparable within a source, not across sources.","write_action":false,"price_micros":0,"input_schema":null},{"name":"note_update","description":"Update a note","write_action":true,"price_micros":0,"input_schema":null},{"name":"object_action_run","description":"Run declarative action on an ontology object","write_action":true,"price_micros":0,"input_schema":null},{"name":"object_find","description":"Find ontology objects by object type and property filters","write_action":false,"price_micros":0,"input_schema":null},{"name":"object_links","description":"Traverse graph links for an object record","write_action":false,"price_micros":0,"input_schema":null},{"name":"organization_bulk_delete","description":"Preview an exact organization snapshot, then apply only that snapshot with confirm, previewId, expectedSnapshotDigest, and a stable idempotencyKey","write_action":true,"price_micros":0,"input_schema":null},{"name":"organization_create","description":"Create a new organization/company","write_action":true,"price_micros":0,"input_schema":null},{"name":"organization_delete","description":"Delete an organization (unlinks people but does not delete them)","write_action":true,"price_micros":0,"input_schema":null},{"name":"organization_search","description":"Search organizations/companies","write_action":false,"price_micros":0,"input_schema":null},{"name":"organization_update","description":"Update an existing organization/company","write_action":true,"price_micros":0,"input_schema":null},{"name":"people_bulk_delete","description":"Preview an exact contact snapshot, then apply only that snapshot with confirm, previewId, expectedSnapshotDigest, and a stable idempotencyKey","write_action":true,"price_micros":0,"input_schema":null},{"name":"people_search","description":"Search contacts","write_action":false,"price_micros":0,"input_schema":null},{"name":"person_create","description":"Create a new person/contact","write_action":true,"price_micros":0,"input_schema":null},{"name":"person_delete","description":"Delete a person/contact","write_action":true,"price_micros":0,"input_schema":null},{"name":"person_update","description":"Update an existing person/contact","write_action":true,"price_micros":0,"input_schema":null},{"name":"project_archive","description":"Archive a project","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_create","description":"Create a project","write_action":true,"price_micros":0,"input_schema":null},{"name":"project_get_context","description":"Get project context (tasks, notes, members, signals)","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_list","description":"List projects","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_planning_get","description":"Get the canonical CSN planning snapshot for a project","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_planning_recompute","description":"Recompute the canonical CSN planning snapshot for a project","write_action":false,"price_micros":0,"input_schema":null},{"name":"project_update","description":"Update a project","write_action":true,"price_micros":0,"input_schema":null},{"name":"repository_project_link","description":"Persist a durable repository-to-project identity after context_current returns an unlinked repository and the caller selects a project candidate. This stores metadata only; it does not upload, index, search, or delete source code.","write_action":false,"price_micros":0,"input_schema":null},{"name":"request_capability","description":"Inspect how to acquire an unavailable Siftable capability without interrupting the MCP session. On Streamable HTTP OAuth connections inspect returns a short-lived approval link (elevation) that widens this connection in place; otherwise it returns the terminal OAuth/reconnect action. Challenge remains available only for clients that explicitly handle HTTP 403 insufficient_scope responses.","write_action":false,"price_micros":0,"input_schema":null},{"name":"schema_introspect","description":"Discover the data model: entity types, link types, core entity schemas (fields), dynamic datasets, and ontology object types. Datasets are summarised (title, ID, rows, field count) unless includeDatasetFields is true; dataset_summarize returns one dataset's field definitions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"task_bulk_delete","description":"Preview an exact task snapshot, then apply only that snapshot with confirm, previewId, expectedSnapshotDigest, and a stable idempotencyKey","write_action":true,"price_micros":0,"input_schema":null},{"name":"task_complete","description":"Mark task complete","write_action":false,"price_micros":0,"input_schema":null},{"name":"task_coupling_edge_create","description":"Create a CSN coupling edge between tasks in the same project","write_action":true,"price_micros":0,"input_schema":null},{"name":"task_coupling_edge_delete","description":"Delete a CSN coupling edge from a task","write_action":true,"price_micros":0,"input_schema":null},{"name":"task_coupling_edge_list","description":"List CSN coupling edges for a task","write_action":false,"price_micros":0,"input_schema":null},{"name":"task_create","description":"Create a human planning task. Executable agent work is created separately with work_item_create (work:write), optionally linked to this task by taskId; if that tool is not callable on this connection, request_capability names the exact next step.","write_action":true,"price_micros":0,"input_schema":null},{"name":"task_delete","description":"Delete a task","write_action":true,"price_micros":0,"input_schema":null},{"name":"task_get","description":"Get a single human planning task with its complete derived state and the executable work linked to it (when this connection can read work items; otherwise work_item_list with taskId needs work:read and request_capability names the next step).","write_action":false,"price_micros":0,"input_schema":null},{"name":"task_list","description":"List human planning tasks with stable IDs and complete derived state. status=in_progress is accepted as an alias for phase=in_flight. Agent execution state lives on separately authorized work_item records.","write_action":false,"price_micros":0,"input_schema":null},{"name":"task_planning_update","description":"Update CSN planning fields on a task","write_action":true,"price_micros":0,"input_schema":null},{"name":"task_update","description":"Update a human planning task — supports brief fields, planning state, and goal linkage. Agent execution should be updated through work_item tools.","write_action":true,"price_micros":0,"input_schema":null},{"name":"work_dependency_policy_get","description":"Get the project default required gate for work-item dependencies","write_action":false,"price_micros":0,"input_schema":null},{"name":"work_dependency_policy_update","description":"Set the project default required gate for work-item dependencies","write_action":true,"price_micros":0,"input_schema":null},{"name":"work_item_claim","description":"Claim the next queued executable work item with a transactional lease","write_action":false,"price_micros":0,"input_schema":null},{"name":"work_item_create","description":"Create executable agent work with an optional canonical Work Contract V1, authoritative UUID dependencies, and parent human planning task linkage.","write_action":true,"price_micros":0,"input_schema":null},{"name":"work_item_dependencies_replace","description":"Atomically replace the authoritative dependency edges for a work item","write_action":false,"price_micros":0,"input_schema":null},{"name":"work_item_edit","description":"…: … … … … … …","write_action":false,"price_micros":0,"input_schema":null},{"name":"work_item_get","description":"Get executable agent work item details, authoritative dependencies, and derived claimability","write_action":false,"price_micros":0,"input_schema":null},{"name":"work_item_list","description":"List executable agent work queue items. Active work only by default (done/failed/cancelled are hidden unless status names one or includeTerminal is true). Ordered by status (running, claimed, queued, blocked, needs_review), then queueRank descending (higher = earlier; 0 is the default; negative ranks are deferred and sort after 0), then oldest first. Use taskId to see execution linked to a human p","write_action":false,"price_micros":0,"input_schema":null},{"name":"work_item_revision_history","description":"List immutable work-item edit receipts with actor attribution, before/after snapshots, and field-addressable diffs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"work_item_verification_evidence_submit","description":"Submit externally executed evidence for an exact active plan version and stable step ID. This never executes a command or revises criteria.","write_action":true,"price_micros":0,"input_schema":null},{"name":"work_item_verification_history","description":"List immutable verification plan versions, superseded evidence, and legacy unbound evidence","write_action":false,"price_micros":0,"input_schema":null},{"name":"work_item_verification_plan_get","description":"Inspect the active immutable verification plan, stable step IDs, latest attempts, and missing coverage","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":77,"grade":"B","scanned_at":"2026-09-20T00:26:20.688Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:26:20.682Z","components":{"code":{"score":25,"max":25,"notes":["72 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 12 days ago"]},"identity":{"score":4,"max":10,"notes":["namespace and repository owner differ"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@siftable/mcp-server","version":"1.4.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-09-07T20:11:03.054Z","weeklyDownloads":285}],"repo":{"found":true,"owner":"execufunction-mcp","repo":"mcp-server","archived":false,"pushedAt":"2026-09-07T20:20:32Z","stars":0,"forks":0,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/263206404?v=4","ownerCreatedAt":"2026-02-22T17:39:21Z","license":"MIT"},"icon":{"url":"https://siftable.io/favicon.svg?v=20260720b","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":285,"license":"MIT","lastPushAt":"2026-09-07T20:20:32.000Z","score":30}}}},"grade_history":[],"reviews":[]}