Module: ActionMCP

Defined in:
app/models/action_mcp/session.rb,
lib/action_mcp.rb,
lib/action_mcp/apps.rb,
lib/action_mcp/tool.rb,
app/models/action_mcp.rb,
lib/action_mcp/engine.rb,
lib/action_mcp/prompt.rb,
lib/action_mcp/server.rb,
lib/action_mcp/content.rb,
lib/action_mcp/current.rb,
lib/action_mcp/gateway.rb,
lib/action_mcp/logging.rb,
lib/action_mcp/version.rb,
lib/action_mcp/resource.rb,
lib/action_mcp/callbacks.rb,
lib/action_mcp/transport.rb,
lib/action_mcp/capability.rb,
lib/action_mcp/dev/runner.rb,
lib/action_mcp/mime_types.rb,
lib/action_mcp/renderable.rb,
lib/action_mcp/gem_version.rb,
lib/action_mcp/test_helper.rb,
lib/action_mcp/content/base.rb,
lib/action_mcp/content/text.rb,
lib/action_mcp/server/roots.rb,
lib/action_mcp/server/tasks.rb,
lib/action_mcp/server/tools.rb,
lib/action_mcp/string_array.rb,
lib/action_mcp/base_response.rb,
lib/action_mcp/configuration.rb,
lib/action_mcp/content/audio.rb,
lib/action_mcp/content/image.rb,
lib/action_mcp/integer_array.rb,
lib/action_mcp/logging/level.rb,
lib/action_mcp/logging/mixin.rb,
lib/action_mcp/logging/state.rb,
lib/action_mcp/registry_base.rb,
lib/action_mcp/tool_response.rb,
lib/action_mcp/log_subscriber.rb,
lib/action_mcp/logging/logger.rb,
lib/action_mcp/schema_helpers.rb,
lib/action_mcp/server/prompts.rb,
lib/action_mcp/tools_registry.rb,
lib/action_mcp/current_helpers.rb,
lib/action_mcp/filtered_logger.rb,
lib/action_mcp/prompt_response.rb,
lib/action_mcp/server/sampling.rb,
lib/action_mcp/types/hash_type.rb,
lib/action_mcp/console_detector.rb,
lib/action_mcp/content/resource.rb,
lib/action_mcp/prompts_registry.rb,
lib/action_mcp/schema_validator.rb,
lib/action_mcp/server/resources.rb,
lib/action_mcp/resource_response.rb,
lib/action_mcp/resource_template.rb,
lib/action_mcp/server/pagination.rb,
lib/action_mcp/apps/view_manifest.rb,
lib/action_mcp/content/validation.rb,
lib/action_mcp/gateway_identifier.rb,
lib/action_mcp/protocol_validator.rb,
lib/action_mcp/resource_callbacks.rb,
lib/action_mcp/server/completions.rb,
lib/action_mcp/server/elicitation.rb,
lib/action_mcp/server/error_aware.rb,
lib/action_mcp/server/tool_result.rb,
app/helpers/action_mcp/apps_helper.rb,
app/models/action_mcp/session/task.rb,
lib/action_mcp/gateway_identifiers.rb,
lib/action_mcp/logging/null_logger.rb,
lib/action_mcp/server/base_session.rb,
lib/action_mcp/server/capabilities.rb,
lib/action_mcp/server/session_store.rb,
lib/action_mcp/content/resource_link.rb,
lib/action_mcp/json_rpc_handler_base.rb,
lib/action_mcp/output_schema_builder.rb,
lib/action_mcp/server/base_messaging.rb,
lib/action_mcp/server/error_handling.rb,
lib/action_mcp/tagged_stream_logging.rb,
lib/action_mcp/uri_ambiguity_checker.rb,
app/models/action_mcp/session/message.rb,
lib/action_mcp/server/handlers/router.rb,
lib/action_mcp/types/float_array_type.rb,
app/jobs/action_mcp/tool_execution_job.rb,
lib/action_mcp/server/json_rpc_handler.rb,
lib/action_mcp/server/sampling_request.rb,
lib/action_mcp/server/messaging_service.rb,
lib/action_mcp/server/transport_handler.rb,
app/models/action_mcp/application_record.rb,
lib/action_mcp/server/base_session_store.rb,
lib/action_mcp/server/response_collector.rb,
lib/action_mcp/server/test_session_store.rb,
lib/action_mcp/server/elicitation_request.rb,
lib/action_mcp/server/registry_management.rb,
app/models/action_mcp/session/subscription.rb,
lib/action_mcp/resource_templates_registry.rb,
lib/action_mcp/server/client_notifications.rb,
app/controllers/action_mcp/mcp_app_renderer.rb,
lib/action_mcp/middleware/origin_validation.rb,
lib/action_mcp/server/handlers/task_handler.rb,
lib/action_mcp/server/handlers/tool_handler.rb,
lib/action_mcp/server/session_store_factory.rb,
lib/action_mcp/server/volatile_session_store.rb,
lib/action_mcp/server/handlers/prompt_handler.rb,
lib/action_mcp/server/url_elicitation_request.rb,
lib/generators/action_mcp/tool/tool_generator.rb,
lib/generators/action_mcp/view/view_generator.rb,
lib/action_mcp/instrumentation/instrumentation.rb,
lib/action_mcp/server/handlers/logging_handler.rb,
lib/action_mcp/server/handlers/resource_handler.rb,
app/controllers/action_mcp/application_controller.rb,
lib/action_mcp/instrumentation/controller_runtime.rb,
lib/action_mcp/server/active_record_session_store.rb,
lib/generators/action_mcp/prompt/prompt_generator.rb,
app/models/concerns/action_mcp/mcp_console_helpers.rb,
app/models/concerns/action_mcp/mcp_message_inspect.rb,
lib/action_mcp/test_helper/session_store_assertions.rb,
lib/generators/action_mcp/install/install_generator.rb,
lib/action_mcp/gateway_identifiers/devise_identifier.rb,
lib/action_mcp/gateway_identifiers/warden_identifier.rb,
lib/action_mcp/gateway_identifiers/api_key_identifier.rb,
lib/action_mcp/instrumentation/resource_instrumentation.rb,
lib/action_mcp/gateway_identifiers/request_env_identifier.rb,
lib/generators/action_mcp/identifier/identifier_generator.rb,
lib/action_mcp/test_helper/progress_notification_assertions.rb,
lib/generators/action_mcp/resource_template/resource_template_generator.rb

Overview

require_relative '../../../test/dummy/app/assets/stylesheets/pwa.tailwind.bootstrap.css'

Defined Under Namespace

Modules: Apps, AppsHelper, Callbacks, ConsoleDetector, Content, CurrentHelpers, Dev, GatewayIdentifiers, Generators, Instrumentation, Logging, MCPConsoleHelpers, MCPMessageInspect, Middleware, MimeTypes, Renderable, ResourceCallbacks, SchemaHelpers, SchemaValidator, Server, TaggedStreamLogging, TestHelper, Transport, Types, UriAmbiguityChecker Classes: ApplicationController, ApplicationRecord, BaseResponse, Capability, Configuration, Current, Engine, FilteredLogger, Gateway, GatewayIdentifier, IntegerArray, JsonRpcHandlerBase, LogSubscriber, MCPAppRenderer, OutputSchemaBuilder, Prompt, PromptResponse, PromptsRegistry, ProtocolValidator, RegistryBase, Resource, ResourceResponse, ResourceTemplate, ResourceTemplatesRegistry, Session, StringArray, StructuredContentValidationError, Tool, ToolExecutionJob, ToolResponse, ToolsRegistry, UnauthorizedError

Constant Summary collapse

SUPPORTED_VERSIONS =

Protocol version constants

[ "2025-11-25" ].freeze
LATEST_VERSION =
SUPPORTED_VERSIONS.first.freeze
DEFAULT_PROTOCOL_VERSION =
LATEST_VERSION
MIME_TYPE_APP_HTML =

MCP Apps UI resources (ext-apps, stable 2026-01-26)

Apps::MIME_TYPE
VERSION =
"0.200.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.loggerObject

Returns the value of attribute logger.



492
493
494
# File 'lib/action_mcp/configuration.rb', line 492

def logger
  @logger
end

Class Method Details

.available_promptsActionMCP::RegistryBase::RegistryScope

Returns the available prompts.

Returns:



92
93
94
# File 'lib/action_mcp.rb', line 92

def available_prompts
  PromptsRegistry.available_prompts
end

.available_toolsActionMCP::RegistryBase::RegistryScope

Returns the available tools.

Returns:



85
86
87
# File 'lib/action_mcp.rb', line 85

def available_tools
  ToolsRegistry.available_tools
end

.configurationObject

Returns the configuration instance.



53
54
55
# File 'lib/action_mcp.rb', line 53

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Configures the ActionMCP module.

Yields:



61
62
63
# File 'lib/action_mcp.rb', line 61

def configure
  yield(configuration)
end

.gem_versionGem::Version

Returns the currently loaded version of Active MCP as a Gem::Version.

Returns:

  • (Gem::Version)

    the currently loaded version of Active MCP



7
8
9
# File 'lib/action_mcp/gem_version.rb', line 7

def self.gem_version
  Gem::Version.new VERSION
end

.promptsHash

Returns the prompts registry.

Returns:

  • (Hash)

    the prompts registry



78
79
80
# File 'lib/action_mcp.rb', line 78

def prompts
  PromptsRegistry.prompts
end

.server#call

Returns a Rack-compatible application for serving MCP requests

Returns:

  • (#call)

    A Rack application that can be used with run ActionMCP.server



46
47
48
# File 'lib/action_mcp.rb', line 46

def server
  Engine
end

.table_name_prefixObject



4
5
6
# File 'app/models/action_mcp.rb', line 4

def self.table_name_prefix
  "action_mcp_"
end

.thread_profilesObject

Thread-local storage for active profiles



495
496
497
# File 'lib/action_mcp/configuration.rb', line 495

def thread_profiles
  @thread_profiles ||= Concurrent::ThreadLocalVar.new(nil)
end

.toolsHash

Returns the tools registry.

Returns:

  • (Hash)

    the tools registry



71
72
73
# File 'lib/action_mcp.rb', line 71

def tools
  ToolsRegistry.tools
end

.versionObject



8
# File 'lib/action_mcp/version.rb', line 8

alias version gem_version

.with_profile(profile_name) ⇒ Object



509
510
511
512
513
514
515
516
517
518
519
520
521
522
# File 'lib/action_mcp/configuration.rb', line 509

def with_profile(profile_name)
  previous_profile = thread_profiles.value
  thread_profiles.value = profile_name

  # Apply the profile options when switching profiles
  configuration&.apply_profile_options

  yield if block_given?
ensure
  thread_profiles.value = previous_profile if block_given?

  # Reapply the previous profile's options when switching back
  configuration.apply_profile_options if block_given? && configuration
end