Nightshift
Connectors and MCP
Nightshift supplies the harness. Your own MCP connectors supply reach into anything outside the repository, which is what lets a fleet do more than write code.
Last updated: July 25, 2026
Quick answer
Roles that touch outside services declare a capability such as email, inbox, social, ads or stripe. Nightshift reads your existing MCP configuration to see whether a connector provides that capability. If one does, the role runs and is handed the config. If none does, the role skips with a reason rather than pretending to work. No credential ever passes through Nightshift.
- Roles ask for a capability, not a vendor, so fleets stay portable
- Existing configuration is read, never written or modified
- Only roles that declared a connector are handed one
- A missing connector means a logged skip, never a silent no-op
- Because money moves through your accounts, nobody can take a share of it
On this page
Where configuration is read from
- .mcp.json in the project directory
- ~/.claude.json for user-level Claude Code servers
- ~/.codex/config.toml for Codex servers
All three are read and combined, so a mixed fleet sees connectors from both providers. Nightshift never writes to them. Run doctor to see exactly what it found and from which file.
nightshift doctor
Capabilities, not vendors
A role declares what it needs, not which product you happen to use. Without this, a role would sit unusable purely because your server is called gmail rather than email.
roles:outreach:needs_mcp: [email] # satisfied by gmail, resend, sendgrid, postmark, ...support:needs_mcp: [inbox] # satisfied by intercom, zendesk, helpscout, gmail, ...finance:needs_mcp: [stripe] # satisfied by stripe, paddle, lemonsqueezy, ...
Recognised capabilities include email, inbox, social, ads, stripe, crm, docs, issues and analytics. Matching is generous: an exact name match, a known alias for the capability, or a substring match, ignoring case, hyphens and underscores.
What happens when a connector is missing
The role skips, the skip is recorded durably, and the reason says what to do about it. Nothing is faked and no tokens are spent.
[finance] skipped: no MCP server provides "stripe" (found: github, gmail)
Fail closed, always
A credential-facing role that cannot reach its service must never appear to have worked. This is why the skip is loud and durable: nightshift status will still show you the reason in the morning.
Drafting versus sending
Writing a draft to a file needs no connector at all. Only a role that actually sends, posts, or reads an outside account does. This distinction matters: marking a purely local content role as needing a connector would make it skip for no reason.
- content writes a post to a file: no connector needed
- social publishes that post: needs a social connector
- support reads your inbox to draft replies: needs an inbox connector even in draft mode
Reading is not sending
A draft-mode role with a connector can read your inbox or revenue data, and writes its output locally for review. It cannot send, post or spend. That requires autopublish, which is opt-in per role.
Privacy
- Nightshift never reads, stores or transmits a credential. It inherits whatever auth your CLI and MCP servers already have.
- Only roles that declared a dependency are handed the MCP config. A local engineer role has no business reaching your inbox.
- The .nightshift run state directory is git-ignored and contains no credentials.
- Because transactions happen in your own accounts, there is no mechanism by which anyone could take a percentage of your revenue.
Frequently asked questions
Do I need connectors to use Nightshift?
No. The five local roles (orchestrator, engineer, planner, content, research) work with nothing but a signed-in agent CLI. Connectors unlock the roles that reach outside your repository.
Will Nightshift modify my MCP configuration?
No. Configuration is read only. If no project-level .mcp.json exists, Nightshift can write an example scaffold naming the capabilities your fleet asked for, and it will never overwrite an existing file because that file may hold real credentials.
My connector has an unusual name. Will it be found?
Probably. Matching ignores case, hyphens, underscores and dots, and checks exact names, known aliases for the capability, and substrings in both directions. If it still is not matched, rename the requirement in nightshift.yaml to your server's actual name.
Was this page helpful?
Related articles
Nightshift
What Nightshift is
Nightshift runs a fleet of AI agents on your own machine on staggered schedules, driving the Claude Code or Codex CLI you already pay for.
Nightshift
The fleet file reference
Complete reference for nightshift.yaml: roles, cadences, modes, sandbox levels, limits and the policy layer.
Data & MCP
What is the BigIdeasDB MCP
The BigIdeasDB MCP is a hosted Model Context Protocol server exposing 30 tools across 11 data sources - a drop-in Reddit API alternative with no PRAW, OAuth, or API keys.