nostairsplease_mcp 0.1.0

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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/nostairsplease_mcp.rb +38 -0
  3. metadata +49 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 51a0e60db198b48f66480da8ac2d7fce1fb19800e16fd1d90deb28ea9438319e
4
+ data.tar.gz: da0f1e30f88af4575d7ff14e71607fdff21578711912a14742900bc89b3a5d54
5
+ SHA512:
6
+ metadata.gz: 5475b50ec60a8ef9cea973c6bc07a6fa8838056cfb6bbebf1578efa45e9ea05df1089f2522a105ef94365f21f6e991cd69aa397d3539e7d8f50c80881cef2301
7
+ data.tar.gz: 85f50e32cf0ea0f1b59b5b3dc38ff73919db6cb141644b81ada8766053e4883035388ba15dd7e62cc10cdb4a3039e97b37b8cb3627c01816b67e3f33732d771d
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "net/http"
5
+ require "uri"
6
+
7
+ module NostairspleaseMcp
8
+ ENDPOINT = "https://nostairsplease.com/mcp"
9
+ SERVER_CARD_URL = "https://nostairsplease.com/.well-known/mcp/server-card.json"
10
+
11
+ class Client
12
+ def server_card
13
+ uri = URI(SERVER_CARD_URL)
14
+ res = Net::HTTP.get_response(uri)
15
+ raise "HTTP #{res.code}" unless res.is_a?(Net::HTTPSuccess)
16
+
17
+ JSON.parse(res.body)
18
+ end
19
+
20
+ def call_tool(access_token:, name:, arguments: {})
21
+ uri = URI(ENDPOINT)
22
+ req = Net::HTTP::Post.new(uri)
23
+ req["Content-Type"] = "application/json"
24
+ req["Accept"] = "application/json, text/event-stream"
25
+ req["Authorization"] = "Bearer #{access_token}" if access_token && !access_token.empty?
26
+ req.body = JSON.generate({
27
+ jsonrpc: "2.0",
28
+ id: 1,
29
+ method: "tools/call",
30
+ params: { name: name, arguments: arguments }
31
+ })
32
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
33
+ raise "HTTP #{res.code}: #{res.body}" unless res.is_a?(Net::HTTPSuccess)
34
+
35
+ res.body
36
+ end
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nostairsplease_mcp
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jared Smith
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-11-15 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Lightweight Ruby client for the No Stairs Please remote Streamable HTTP
14
+ MCP server (https://nostairsplease.com/mcp), covering live music venue booking contacts,
15
+ capacities, and show history across all 50 US states, DC, and British Columbia.
16
+ email:
17
+ - links@nostairsplease.com
18
+ executables: []
19
+ extensions: []
20
+ extra_rdoc_files: []
21
+ files:
22
+ - lib/nostairsplease_mcp.rb
23
+ homepage: https://nostairsplease.com/mcp
24
+ licenses:
25
+ - MIT
26
+ metadata:
27
+ homepage_uri: https://nostairsplease.com/mcp
28
+ documentation_uri: https://nostairsplease.com/venues
29
+ source_code_uri: https://github.com/ratacat/nostairsplease-mcp
30
+ post_install_message:
31
+ rdoc_options: []
32
+ require_paths:
33
+ - lib
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '3.0'
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ requirements: []
45
+ rubygems_version: 3.0.3.1
46
+ signing_key:
47
+ specification_version: 4
48
+ summary: Ruby client for the No Stairs Please remote MCP server
49
+ test_files: []