Now MCP
Synchronizes data from the Now iOS app to a self-hosted server and exposes it through authenticated MCP tools; the app requests read-only HealthKit access and uploads via an idempotent offline queue.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Now MCPhow many steps did I log yesterday?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Now MCP
Now MCP synchronizes data known to an iOS app at its most recent sync to a self-hosted server and exposes that data through Remote MCP. It does not claim continuous background or real-time observation.
Requirements
Node.js 24 LTS and npm 11
Xcode 26 or newer with an iOS 26 or newer Simulator runtime
XcodeGen 2.44 or newer only when regenerating the committed Xcode project
Related MCP server: AppScope MCP Server
Server
npm install
npm run generate:tokens > .env
npm run dev
curl http://127.0.0.1:3000/healthznpm run generate:tokens creates independent random DEVICE_TOKEN and
MCP_TOKEN values. Use npm run generate:tokens -- --json when a script needs
machine-readable output. Keep the generated .env private; production
supervisors should inject these values through their secret configuration.
The health endpoint returns HTTP 200 with status: "ok". Run the full server
check with npm run verify:server.
Configuration keys are documented in .env.example. npm run dev and
npm start load .env automatically from the current package directory (and
fall back to the repository root when run from server/). Injected environment
variables take precedence. Never reuse the example token values.
Phase 2 adds the authenticated sync API. See the complete request and response contract in Sync API. A minimal status request is:
curl -H "Authorization: Bearer $DEVICE_TOKEN" \
http://127.0.0.1:3000/api/sync/statusPhase 3 adds the MCP endpoint at POST /mcp. Configure a Streamable HTTP client
with Authorization: Bearer <MCP_TOKEN>; this credential must differ from the
device credential. See MCP Server for tools and error semantics.
iOS app
Open ios/Now.xcodeproj, select an iOS 26 or newer simulator, and run the Now
scheme. To regenerate the checked-in project after editing ios/project.yml:
cd ios
xcodegen generateFor a non-signing command-line build:
xcodebuild -project ios/Now.xcodeproj -scheme Now \
-sdk iphonesimulator -destination 'generic/platform=iOS Simulator' \
-derivedDataPath /tmp/now-mcp-derived-data CODE_SIGNING_ALLOWED=NO buildDocumentation
macOS client
The macOS command-line client is in macos/. Build it with swift build and
run it with NOW_SERVER_URL, NOW_DEVICE_TOKEN, and a stable NOW_DEVICE_ID.
It invokes dayflow export --json for historical app usage and uploads a
minute-sized sample for the current frontmost app. macOS privacy permissions
and the installed Dayflow CLI determine which rows are available.
Phases 0-5 are implemented: the server has a repeatable SQLite migration,
typed repositories, 30-day retention, an authenticated versioned batch sync API,
and seven authenticated read-only MCP tools. The iOS app now requests read-only
HealthKit access, persists an idempotent offline queue, uploads with the device
token, and presents Liquid Glass overview, detail, access, and sync controls.
The iOS project now contains an isolated screen-time feasibility collector. It
can request individual Family Controls authorization when the framework is
available and reports the remaining DeviceActivityReport extension boundary.
Apple does not provide a supported API for the containing app to retrieve and
serialize arbitrary historical per-app report rows, so screen-time upload is
not enabled. The collector's failure cannot block HealthKit synchronization.
The app also registers HealthKit background delivery and iOS BackgroundTasks for opportunistic refresh and processing. See iOS background sync for the scheduling limits and the conditions under which an upload can be deferred.
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Build, deploy, and host full-stack web apps from any MCP client. DB, auth, storage, cron included.
Remote MCP server for training, nutrition, wellness, and performance data with OAuth 2.0.
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for privacy-gated local Apple data access including Mail, Messages, Notes, Calendar, Contacts, Photos, Reminders, Voice Memos, and iCloud Drive.301MIT
- AlicenseNot gradedqualityBmaintenanceSelf-hosted MCP server for app market intelligence, enabling tools to query app download/revenue estimates, ad intensity proxies, creator mentions, and rank history from local collected data.MIT
- AlicenseAqualityBmaintenanceAn MCP server that drives the full App Store release cycle for iOS and macOS apps: version bump, archive + TestFlight upload, metadata, review submission, and status.829 npmMIT
- AlicenseNot gradedqualityBmaintenanceMCP server that exposes App Store Connect TestFlight beta feedback including screenshot submissions, crash submissions, crash logs, and screenshot downloads as tools for MCP-capable clients.2BSD 3-Clause