Module: CompletionKit::McpTools::ProviderCredentials
- Extended by:
- Base
- Defined in:
- app/services/completion_kit/mcp_tools/provider_credentials.rb
Constant Summary collapse
- TOOLS =
{ "provider_credentials_list" => { description: "List all provider credentials (API keys are not exposed)", inputSchema: {type: "object", properties: {}, required: []}, handler: :list }, "provider_credentials_get" => { description: "Get a provider credential by ID (API key is not exposed)", inputSchema: {type: "object", properties: {id: {type: "integer"}}, required: ["id"]}, handler: :get }, "provider_credentials_create" => { description: "Create a provider credential", inputSchema: { type: "object", properties: { provider: {type: "string", enum: ["openai", "anthropic", "ollama", "openrouter"]}, api_key: {type: "string"}, api_endpoint: {type: "string"} }, required: ["provider", "api_key"] }, handler: :create }, "provider_credentials_update" => { description: "Update a provider credential", inputSchema: { type: "object", properties: { id: {type: "integer"}, provider: {type: "string"}, api_key: {type: "string"}, api_endpoint: {type: "string"} }, required: ["id"] }, handler: :update }, "provider_credentials_delete" => { description: "Delete a provider credential", inputSchema: {type: "object", properties: {id: {type: "integer"}}, required: ["id"]}, handler: :delete } }.freeze
Class Method Summary collapse
- .create(args) ⇒ Object
- .delete(args) ⇒ Object
- .get(args) ⇒ Object
- .list(_args) ⇒ Object
- .update(args) ⇒ Object
Methods included from Base
call, definitions, error_result, text_result
Class Method Details
.create(args) ⇒ Object
57 58 59 60 61 62 63 64 |
# File 'app/services/completion_kit/mcp_tools/provider_credentials.rb', line 57 def self.create(args) credential = ProviderCredential.new(args.slice("provider", "api_key", "api_endpoint")) if credential.save text_result(credential.as_json) else error_result(credential.errors..join(", ")) end end |
.delete(args) ⇒ Object
75 76 77 78 |
# File 'app/services/completion_kit/mcp_tools/provider_credentials.rb', line 75 def self.delete(args) ProviderCredential.find(args["id"]).destroy! text_result("Provider credential #{args["id"]} deleted") end |
.get(args) ⇒ Object
53 54 55 |
# File 'app/services/completion_kit/mcp_tools/provider_credentials.rb', line 53 def self.get(args) text_result(ProviderCredential.find(args["id"]).as_json) end |
.list(_args) ⇒ Object
49 50 51 |
# File 'app/services/completion_kit/mcp_tools/provider_credentials.rb', line 49 def self.list(_args) text_result(ProviderCredential.order(created_at: :desc).map(&:as_json)) end |
.update(args) ⇒ Object
66 67 68 69 70 71 72 73 |
# File 'app/services/completion_kit/mcp_tools/provider_credentials.rb', line 66 def self.update(args) credential = ProviderCredential.find(args["id"]) if credential.update(args.except("id").slice("provider", "api_key", "api_endpoint")) text_result(credential.as_json) else error_result(credential.errors..join(", ")) end end |