Module: AgentsID
- Defined in:
- lib/agentsid.rb,
lib/agentsid/client.rb,
lib/agentsid/errors.rb,
lib/agentsid/middleware.rb
Defined Under Namespace
Classes: AgentsIDError, AuthenticationError, Client, MCPMiddleware, PermissionDeniedError, TokenExpiredError, TokenRevokedError
Constant Summary collapse
- VERSION =
"0.1.0"- DEFAULT_BASE_URL =
"https://agentsid.dev"- DEFAULT_TIMEOUT =
10- DEFAULT_BASE_URL_MW =
"https://agentsid.dev"
Class Method Summary collapse
-
.create_mcp_middleware(project_key:, base_url: DEFAULT_BASE_URL_MW, skip_tools: nil) ⇒ MCPMiddleware
Factory method matching the Python SDK's create_mcp_middleware.
-
.validate_tool_call(project_key:, token:, tool:, params: nil, base_url: DEFAULT_BASE_URL_MW) ⇒ Hash
Validate a single tool call against AgentsID.
Class Method Details
.create_mcp_middleware(project_key:, base_url: DEFAULT_BASE_URL_MW, skip_tools: nil) ⇒ MCPMiddleware
Factory method matching the Python SDK's create_mcp_middleware.
123 124 125 126 127 128 129 |
# File 'lib/agentsid/middleware.rb', line 123 def self.create_mcp_middleware(project_key:, base_url: DEFAULT_BASE_URL_MW, skip_tools: nil) MCPMiddleware.new( project_key: project_key, base_url: base_url, skip_tools: skip_tools ) end |
.validate_tool_call(project_key:, token:, tool:, params: nil, base_url: DEFAULT_BASE_URL_MW) ⇒ Hash
Validate a single tool call against AgentsID.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/agentsid/middleware.rb', line 20 def self.validate_tool_call(project_key:, token:, tool:, params: nil, base_url: DEFAULT_BASE_URL_MW) uri = URI("#{base_url.chomp('/')}/api/v1/validate") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = uri.scheme == "https" http.open_timeout = 10 http.read_timeout = 10 req = Net::HTTP::Post.new(uri) req["Content-Type"] = "application/json" req.body = JSON.generate({ token: token, tool: tool, params: params }) response = http.request(req) status = response.code.to_i unless (200..299).cover?(status) return { "valid" => false, "reason" => "Validation failed: #{status}" } end JSON.parse(response.body) end |