Module: Legion::MCP

Extended by:
Logging::Helper
Defined in:
lib/legion/mcp.rb,
lib/legion/mcp/auth.rb,
lib/legion/mcp/client.rb,
lib/legion/mcp/server.rb,
lib/legion/mcp/version.rb,
lib/legion/mcp/observer.rb,
lib/legion/mcp/settings.rb,
lib/legion/mcp/cold_start.rb,
lib/legion/mcp/client/pool.rb,
lib/legion/mcp/tier_router.rb,
lib/legion/mcp/gap_detector.rb,
lib/legion/mcp/tool_adapter.rb,
lib/legion/mcp/tool_quality.rb,
lib/legion/mcp/tools/absorb.rb,
lib/legion/mcp/tools/skills.rb,
lib/legion/mcp/usage_filter.rb,
lib/legion/mcp/context_guard.rb,
lib/legion/mcp/pattern_store.rb,
lib/legion/mcp/self_generate.rb,
lib/legion/mcp/state_tracker.rb,
lib/legion/mcp/pattern_gossip.rb,
lib/legion/mcp/pattern_schema.rb,
lib/legion/mcp/tools/ask_peer.rb,
lib/legion/mcp/tools/eval_run.rb,
lib/legion/mcp/tools/get_task.rb,
lib/legion/mcp/tools/run_task.rb,
lib/legion/mcp/embedding_index.rb,
lib/legion/mcp/logging_support.rb,
lib/legion/mcp/tool_governance.rb,
lib/legion/mcp/tools/do_action.rb,
lib/legion/mcp/tools/eval_list.rb,
lib/legion/mcp/context_compiler.rb,
lib/legion/mcp/dynamic_injector.rb,
lib/legion/mcp/pattern_compiler.rb,
lib/legion/mcp/pattern_exchange.rb,
lib/legion/mcp/structural_index.rb,
lib/legion/mcp/tools/get_config.rb,
lib/legion/mcp/tools/get_status.rb,
lib/legion/mcp/tools/list_peers.rb,
lib/legion/mcp/tools/list_tasks.rb,
lib/legion/mcp/tools/prompt_run.rb,
lib/legion/mcp/tools/rbac_check.rb,
lib/legion/mcp/tools/state_diff.rb,
lib/legion/mcp/tools/tool_audit.rb,
lib/legion/mcp/client/connection.rb,
lib/legion/mcp/deferred_registry.rb,
lib/legion/mcp/tools/delete_task.rb,
lib/legion/mcp/tools/list_chains.rb,
lib/legion/mcp/tools/mesh_status.rb,
lib/legion/mcp/tools/notify_peer.rb,
lib/legion/mcp/tools/plan_action.rb,
lib/legion/mcp/tools/prompt_list.rb,
lib/legion/mcp/tools/prompt_show.rb,
lib/legion/mcp/tools/rbac_grants.rb,
lib/legion/mcp/tools/show_worker.rb,
lib/legion/mcp/catalog_dispatcher.rb,
lib/legion/mcp/function_discovery.rb,
lib/legion/mcp/override_broadcast.rb,
lib/legion/mcp/tools/create_chain.rb,
lib/legion/mcp/tools/dataset_list.rb,
lib/legion/mcp/tools/dataset_show.rb,
lib/legion/mcp/tools/delete_chain.rb,
lib/legion/mcp/tools/eval_results.rb,
lib/legion/mcp/tools/list_workers.rb,
lib/legion/mcp/tools/team_summary.rb,
lib/legion/mcp/tools/update_chain.rb,
lib/legion/mcp/tools/worker_costs.rb,
lib/legion/mcp/tools/get_extension.rb,
lib/legion/mcp/tools/get_task_logs.rb,
lib/legion/mcp/tools/routing_stats.rb,
lib/legion/mcp/tools/discover_tools.rb,
lib/legion/mcp/tools/list_schedules.rb,
lib/legion/mcp/tools/broadcast_peers.rb,
lib/legion/mcp/tools/create_schedule.rb,
lib/legion/mcp/tools/delete_schedule.rb,
lib/legion/mcp/tools/describe_runner.rb,
lib/legion/mcp/tools/list_extensions.rb,
lib/legion/mcp/tools/query_knowledge.rb,
lib/legion/mcp/tools/search_sessions.rb,
lib/legion/mcp/tools/update_schedule.rb,
lib/legion/mcp/client/server_registry.rb,
lib/legion/mcp/tools/enable_extension.rb,
lib/legion/mcp/tools/knowledge_health.rb,
lib/legion/mcp/tools/rbac_assignments.rb,
lib/legion/mcp/tools/structural_index.rb,
lib/legion/mcp/tools/worker_lifecycle.rb,
lib/legion/mcp/tools/disable_extension.rb,
lib/legion/mcp/tools/knowledge_context.rb,
lib/legion/mcp/resources/extension_info.rb,
lib/legion/mcp/resources/runner_catalog.rb,
lib/legion/mcp/tools/experiment_results.rb,
lib/legion/mcp/tools/list_relationships.rb,
lib/legion/mcp/tools/mind_growth_health.rb,
lib/legion/mcp/tools/mind_growth_status.rb,
lib/legion/mcp/tools/create_relationship.rb,
lib/legion/mcp/tools/delete_relationship.rb,
lib/legion/mcp/tools/mind_growth_approve.rb,
lib/legion/mcp/tools/mind_growth_propose.rb,
lib/legion/mcp/tools/update_relationship.rb,
lib/legion/mcp/actors/self_generate_cycle.rb,
lib/legion/mcp/tools/mind_growth_build_queue.rb,
lib/legion/mcp/tools/mind_growth_cognitive_profile.rb

Defined Under Namespace

Modules: Actor, Auth, CatalogDispatcher, Client, ColdStart, ContextCompiler, ContextGuard, DeferredRegistry, DynamicInjector, EmbeddingIndex, FunctionDiscovery, GapDetector, LoggingSupport, Observer, OverrideBroadcast, PatternCompiler, PatternExchange, PatternGossip, PatternSchema, PatternStore, Resources, SelfGenerate, Server, Settings, StateTracker, StructuralIndex, TierRouter, ToolGovernance, ToolQuality, Tools, UsageFilter Classes: ToolAdapter

Constant Summary collapse

VERSION =
'0.8.1'

Class Method Summary collapse

Class Method Details

.reset!Object



43
44
45
46
# File 'lib/legion/mcp.rb', line 43

def reset!
  log.info 'Resetting Legion::MCP server cache' if @server
  @server = nil
end

.serverObject



23
24
25
26
27
28
29
# File 'lib/legion/mcp.rb', line 23

def server
  log.debug 'Building Legion::MCP server' unless @server
  @server ||= Server.build
rescue StandardError => e
  handle_exception(e, level: :error, operation: 'mcp.server')
  raise
end

.server_for(token:) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/legion/mcp.rb', line 31

def server_for(token:)
  log.debug { "Authenticating MCP server request token_present=#{!token.to_s.empty?}" }
  auth_result = Auth.authenticate(token)
  return { error: auth_result[:error] } unless auth_result[:authenticated]

  log.info { "Building identity-scoped MCP server identity=#{auth_result[:identity]}" }
  Server.build(identity: auth_result[:identity])
rescue StandardError => e
  handle_exception(e, level: :error, operation: 'mcp.server_for', token_present: !token.to_s.empty?)
  { error: e.message }
end