{"id":"hald-things-mcp","name":"things-mcp","homepage":null,"repo_url":"https://github.com/hald/things-mcp","category":"devtools","subcategories":[],"tags":["mcp","python","things-3","task-management","automation","macos","ai-agents"],"what_it_does":"Provides an MCP (Model Context Protocol) server to let an MCP-capable client (e.g., Claude Desktop/Code) interact with Things 3 task-management data on macOS—listing items, searching, and creating/updating tasks and projects via Things’ URL scheme/Things.py integration. Supports stdio transport by default and optional HTTP transport via environment variables.","use_cases":["Summarize and review items from Things lists (Inbox/Today/Upcoming/Anytime/Someday/Logbook/Trash).","Create todos and projects with natural scheduling keywords/dates (including reminder datetimes).","Update existing tasks/projects (e.g., modify schedules/status/metadata).","Search and filter tasks using multiple criteria (status, dates, tags, areas, types, recency).","Manage tags, and fetch tagged items for planning and prioritization."],"not_for":["Non-macOS environments (Things 3 is macOS-only).","Teams seeking a hosted, multi-user API with strong centralized access control (this appears to operate on a local client and user’s Things data).","Use cases requiring guaranteed enterprise compliance controls beyond the user’s local environment setup."],"best_when":"You want an agent/assistant to read and act on your personal Things 3 database via MCP tools, directly from a local macOS workflow.","avoid_when":"You need fine-grained authorization boundaries between multiple users or remote, internet-exposed HTTP access without additional network hardening.","alternatives":["Use Things 3’s own URL scheme directly from your scripts/automation (without MCP).","Build/host a different automation layer on top of Things URL scheme/Things.py and expose it to your agent as MCP.","If your workflow is mainly search/retrieval, consider an agent workflow that pulls Things data via a smaller custom toolset rather than full create/update capabilities."],"af_score":62.8,"security_score":37.5,"reliability_score":35.0,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T13:28:40.171745+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["No explicit auth described; relies on local user access to Things via URL scheme/Things.py."],"oauth":false,"scopes":false,"notes":"No authentication mechanism (API keys/OAuth) is described in the README. If HTTP transport is enabled, access control for the HTTP server is not documented here."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Open-source (MIT) and distributed via PyPI/uvx; no pricing information provided."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":62.8,"security_score":37.5,"reliability_score":35.0,"mcp_server_quality":78.0,"documentation_accuracy":85.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":95.0,"rate_limit_clarity":0.0,"tls_enforcement":35.0,"auth_strength":20.0,"scope_granularity":15.0,"dependency_hygiene":70.0,"secret_handling":60.0,"security_notes":"Transport defaults to stdio (safer than remote HTTP). Optional HTTP transport is documented via environment variables, but no TLS requirement or authentication/authorization is described here—so exposing the HTTP port publicly could be risky. The tool operates on user’s personal Things data; treat it as privileged within that user context. No secret-management details are provided in the README.","uptime_documented":0.0,"version_stability":55.0,"breaking_changes_history":40.0,"error_recovery":45.0,"idempotency_support":"false","idempotency_notes":"README documents update/create operations but does not discuss idempotency guarantees for repeated calls.","pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Default transport is stdio; if you enable HTTP transport, you’ll need to ensure it is not exposed broadly without appropriate firewall/network controls.","This server operates against a local Things 3 database; ensure Things has been opened at least once and “Enable Things URLs” is enabled.","Behavior around Someday-project exclusion from Today/Upcoming/Anytime is described; agents should account for this when reconciling list views.","Potential ambiguity in natural-language scheduling: use the documented accepted formats (keywords/date/ISO-like datetime@HH:MM)."]}}