firestore-mcp-server 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/get_products_tool.rb +27 -6
  3. data/main.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d2a58dc40cd41de1247e8fe51f11b7be2599e14ae664a0a31f5a2795e700e362
4
- data.tar.gz: de4d5c7f6e3c82e438dcadfb399b0ee278b77aa7b6449dac9891e948d2f16188
3
+ metadata.gz: ece424f01edc5970502519b8bb04ebc5e56b72ead03d85b581abd0307a578eb3
4
+ data.tar.gz: 7f4cff1f45a62030eddb1b31573da5f2b5d9b693bd05327f2616dca865e53281
5
5
  SHA512:
6
- metadata.gz: 0f70c698bc793104fddba57cf80d7bcbf9cd8e82bea532af4a392bd25ebba24866e7a4d5db1776cf808f5350c38c5c204d14eae4899a3d69e51be17b2cea5af1
7
- data.tar.gz: 53f7c5d2ba45e26ed422d57f9ededb1eb4757795c1779118907b294e61c8882f743e7c9a4f1cf4ea508face2c2c45ce0df1864a03f590e9efc3848051cc55e8f
6
+ metadata.gz: ef01187aca499e7453fa7ea99edf6ab9dfe55b88997882c09aa2e95f38aae1079e7b18892a6cb9201bd4391141974b25cd6e25c6b5352dca65b703487b3d4191
7
+ data.tar.gz: e17ee329c0b2426fbddbb209fba98d5b7ddc82efb97e932004209a2c3fa3df9ec6872b851639534589d818ee1f64a8a70bc0a96089e195f0c46e10b0df78e320
@@ -11,14 +11,35 @@ class GetProductsTool < MCP::Tool
11
11
  input_schema(type: 'object', properties: {})
12
12
 
13
13
  class << self
14
- def call
14
+ def call(*)
15
15
  client = FirestoreClient.instance
16
- if client.db_running
17
- products = client.products
18
- [{ type: 'text', text: products.to_json }]
19
- else
20
- [{ type: 'text', text: 'Inventory database is not running.' }]
16
+ return db_not_running_response unless client.db_running
17
+
18
+ products = format_products(client.products)
19
+ MCP::Tool::Response.new([{ type: 'text', text: products.to_json }])
20
+ rescue StandardError => e
21
+ error_response(e)
22
+ end
23
+
24
+ private
25
+
26
+ def format_products(products)
27
+ products.map do |p|
28
+ p[:timestamp] = p[:timestamp].to_s if p[:timestamp]
29
+ p[:actualdateadded] = p[:actualdateadded].to_s if p[:actualdateadded]
30
+ p
21
31
  end
22
32
  end
33
+
34
+ def db_not_running_response
35
+ MCP::Tool::Response.new([{ type: 'text', text: 'Inventory database is not running.' }])
36
+ end
37
+
38
+ def error_response(error)
39
+ MCP::Tool::Response.new(
40
+ [{ type: 'text', text: "Error getting products: #{error.message}" }],
41
+ is_error: true
42
+ )
43
+ end
23
44
  end
24
45
  end
data/main.rb CHANGED
@@ -32,7 +32,7 @@ FirestoreClient.instance
32
32
  # Initialize MCP Server
33
33
  server = MCP::Server.new(
34
34
  name: 'inventory-server',
35
- version: '1.0.0',
35
+ version: '0.1.1',
36
36
  tools: [
37
37
  GreetTool,
38
38
  GetProductsTool,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firestore-mcp-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - xbill