MCPcopy Create free account
hub / github.com/authorizerdev/authorizer / runMCP

Function runMCP

cmd/mcp.go:79–194  ·  view source on GitHub ↗
(_ *cobra.Command, _ []string)

Source from the content-addressed store, hash-verified

77}
78
79func runMCP(_ *cobra.Command, _ []string) {
80 // MCP stdio mode: stderr-only logging so it doesn't interleave with the
81 // JSON-RPC framing on stdout.
82 log := zerolog.New(os.Stderr).With().Timestamp().Logger()
83
84 // Wire all subsystems an MCP-exposed tool might need. As more ops
85 // migrate into internal/service, this list stays the same — the
86 // service-provider dependencies don't change per op, only the methods
87 // on the provider do.
88 storageProvider, err := storage.New(&rootArgs.config, &storage.Dependencies{Log: &log})
89 if err != nil {
90 log.Fatal().Err(err).Msg("failed to create storage provider")
91 }
92 memoryStoreProvider, err := memory_store.New(&rootArgs.config, &memory_store.Dependencies{
93 Log: &log,
94 StorageProvider: storageProvider,
95 })
96 if err != nil {
97 log.Fatal().Err(err).Msg("failed to create memory store provider")
98 }
99 tokenProvider, err := token.New(&rootArgs.config, &token.Dependencies{
100 Log: &log,
101 MemoryStoreProvider: memoryStoreProvider,
102 })
103 if err != nil {
104 log.Fatal().Err(err).Msg("failed to create token provider")
105 }
106 emailProvider, err := email.New(&rootArgs.config, &email.Dependencies{
107 Log: &log,
108 StorageProvider: storageProvider,
109 })
110 if err != nil {
111 log.Fatal().Err(err).Msg("failed to create email provider")
112 }
113 smsProvider, err := sms.New(&rootArgs.config, &sms.Dependencies{Log: &log})
114 if err != nil {
115 log.Fatal().Err(err).Msg("failed to create sms provider")
116 }
117 auditProvider := audit.New(&audit.Dependencies{
118 Log: &log,
119 StorageProvider: storageProvider,
120 })
121 eventsProvider, err := events.New(&rootArgs.config, &events.Dependencies{
122 Log: &log,
123 StorageProvider: storageProvider,
124 })
125 if err != nil {
126 log.Fatal().Err(err).Msg("failed to create events provider")
127 }
128
129 // Embedded OpenFGA engine, shared init with root.go. Nil (fail-closed)
130 // when FGA is not configured or init fails — the permission tools fail
131 // closed while the rest of the MCP surface serves.
132 authzEngine, closeAuthzEngine := initAuthzEngine(&rootArgs.config, &log)
133 defer closeAuthzEngine()
134
135 // Authenticator provider — required by the service layer's TOTP/MFA
136 // verification flows (verify_otp, login).

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
initAuthzEngineFunction · 0.85

Tested by

no test coverage detected