ADR-003: Bifrost MCP Gateway
Status
Accepted
Context
The Norns agent needs to interact with multiple external services:
- Home Assistant for smart home control
- Grocy for household management
- GitLab for code repository access
- n8n for workflow automation
- Linear for project management
- And more services over time
Direct integration with each service in the agent creates:
- Tight coupling between agent and services
- Complex configuration management
- Difficult testing and mocking
- No centralized access control
Decision
We implemented Bifrost, a Model Context Protocol (MCP) gateway that:
- Provides a unified interface for all external services
- Implements MCP standard for tool discovery and invocation
- Centralizes authentication and rate limiting
- Enables service mocking for testing
Consequences
Positive
- Clean separation between agent logic and service integration
- Easy to add new services without modifying agent
- Centralized security and access control
- Standardized tool interface following MCP spec
- Better testability with mock services
Negative
- Additional network hop for service calls
- Gateway becomes potential single point of failure
- MCP standard still evolving
Alternatives Considered
Direct Integration
Simpler initially but doesn't scale. Each new service requires agent changes.
Custom API Gateway
Would work but MCP provides better tooling integration and is becoming an industry standard for LLM tool use.
Function Calling Proxy
Similar to MCP but proprietary. MCP has better ecosystem support.