cf-mcp 0.17.0 → 0.17.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d62d42b607e127916235fb3bbd2a2dace73fc1aefc9216dc1d9f92acfa6c423a
4
- data.tar.gz: 12a75fda9901e78aee0fc6f7c3ed448ce52f6130d868f036aa674464efea640c
3
+ metadata.gz: 98423800bb5ecaf4605f4ebf9dda9e8a23d0e769d2840d7ea02604ab46b2e82e
4
+ data.tar.gz: 89d5e7b80786cec6e6304e1acf9f06e1eff0811f7091f77d776742ded9b515df
5
5
  SHA512:
6
- metadata.gz: 63eabad61e8ea796f628e8f6248ac3e147b8486ac7495ab897dbd596d13044bd6495032dabede788a25a9426fcb9b855e5ced42a541b47aaeb269e161d958887
7
- data.tar.gz: a262522cae34cbcb9b2f9c54252709b86fa44efbf2f32f8426937784cc35d5aaf048c9267ca4e9ee53bf1b3543f5df0e4d8ca76580a881cc94b0d4ab44f355a5
6
+ metadata.gz: c5af9f6e8e234fcf8dd3cd9cb074609bd600df1dd7dfb6884d10b993a22bc29dce1d0ad1b7b88b35ac0635089350004eb4a61718f9231a05d5f9f5755e0ff202
7
+ data.tar.gz: 1aeb2b9475763f1d88a53d870f0513696b2855c3edbdab2652ad08a960b7a17fc6768b99c9ae233243ab509285b4726dcf17f562256b9d887a8759ca0e1dbe4a
data/CHANGELOG.md CHANGED
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.17.2] - 2026-02-10
11
+
12
+ ### Changed
13
+
14
+ - Lowered MCP protocol version from 2025-03-26 to 2025-03-26 for compatibility
15
+ - Removed title and website_url from server initialization (not supported in lower protocol version)
16
+
17
+ ### Fixed
18
+
19
+ - Fix tool name reference in web UI script.js (changed `cf_get_topic` to `get_topic` to match current tool naming)
20
+ - Remove test assertions for title-related functionality to match protocol downgrade
21
+
22
+ ## [0.17.1] - 2026-02-09
23
+
24
+ This version was prepared but never released. Changes rolled into 0.17.2.
25
+
10
26
  ## [0.17.0] - 2026-02-09
11
27
 
12
28
  ### Added
@@ -277,6 +293,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
277
293
  - `cf_list_category` - List items by category
278
294
  - `cf_get_details` - Get full documentation by name
279
295
 
296
+ [0.17.2]: https://github.com/pusewicz/cf-mcp/compare/v0.17.0...v0.17.2
297
+ [0.17.1]: https://github.com/pusewicz/cf-mcp/compare/v0.17.0...v0.17.1
280
298
  [0.17.0]: https://github.com/pusewicz/cf-mcp/compare/v0.16.2...v0.17.0
281
299
  [0.16.2]: https://github.com/pusewicz/cf-mcp/compare/v0.16.1...v0.16.2
282
300
  [0.16.1]: https://github.com/pusewicz/cf-mcp/compare/v0.16.0...v0.16.1
data/Manifest.txt CHANGED
@@ -5,6 +5,7 @@ README.md
5
5
  Rakefile
6
6
  config.ru
7
7
  exe/cf-mcp
8
+ exe/cf-mcp-wrapper
8
9
  lib/cf/mcp.rb
9
10
  lib/cf/mcp/cli.rb
10
11
  lib/cf/mcp/downloader.rb
data/exe/cf-mcp CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
+ require "bundler/setup"
4
5
  require "cf/mcp"
5
6
 
6
7
  CF::MCP::CLI.new(ARGV).run
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+ source /opt/homebrew/share/chruby/chruby.sh
3
+
4
+ PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
5
+ chruby "$(cat "$PROJECT_DIR/.ruby-version")"
6
+
7
+ export BUNDLE_GEMFILE="$PROJECT_DIR/Gemfile"
8
+ exec "$PROJECT_DIR/exe/cf-mcp" "$@"
data/lib/cf/mcp/server.rb CHANGED
@@ -34,7 +34,7 @@ module CF
34
34
  new(index).rack_app
35
35
  end
36
36
 
37
- PROTOCOL_VERSION = "2025-06-18"
37
+ PROTOCOL_VERSION = "2025-03-26"
38
38
  WEBSITE_URL = ENV.fetch("FLY_APP_NAME", nil) ? "https://#{ENV["FLY_APP_NAME"]}.fly.dev" : "https://cf-mcp.fly.dev"
39
39
  PUBLIC_DIR = File.join(__dir__, "public")
40
40
 
@@ -44,10 +44,8 @@ module CF
44
44
  configuration = ::MCP::Configuration.new(protocol_version: PROTOCOL_VERSION)
45
45
  @server = ::MCP::Server.new(
46
46
  name: "cf-mcp",
47
- title: "Cute Framework MCP",
48
47
  configuration:,
49
48
  version: CF::MCP::VERSION,
50
- website_url: WEBSITE_URL,
51
49
  icons: [
52
50
  ::MCP::Icon.new(src: "#{WEBSITE_URL}/favicon.svg", mime_type: "image/svg+xml", sizes: ["any"]),
53
51
  ::MCP::Icon.new(src: "#{WEBSITE_URL}/favicon-96x96.png", mime_type: "image/png", sizes: ["96x96"])
@@ -162,7 +162,7 @@ function FormField({ name, propDef, required, value, onChange, toolName }) {
162
162
  } else if (name === 'category') {
163
163
  input = renderSelect(id, value, handleChange, required, '-- All Categories --',
164
164
  CATEGORIES.map(cat => html`<option value=${cat}>${cat}</option>`));
165
- } else if (name === 'name' && toolName === 'cf_get_topic') {
165
+ } else if (name === 'name' && toolName === 'get_topic') {
166
166
  input = renderSelect(id, value, handleChange, required, '-- Select Topic --', renderTopicOptions());
167
167
  } else {
168
168
  input = html`
@@ -260,7 +260,7 @@ function TopicsExplorer() {
260
260
  const value = e.target.value;
261
261
  setSelectedTopic(value);
262
262
  if (value) {
263
- callTool('cf_get_topic', { name: value }, 'Loading topic...');
263
+ callTool('get_topic', { name: value }, 'Loading topic...');
264
264
  } else {
265
265
  reset();
266
266
  }
@@ -9,10 +9,7 @@ module CF
9
9
  class FindRelated < ::MCP::Tool
10
10
  extend ResponseHelpers
11
11
 
12
- TITLE = "Find Related"
13
-
14
12
  tool_name "find_related"
15
- title TITLE
16
13
  description "Find all items related to a given Cute Framework item (bidirectional relationship search)"
17
14
 
18
15
  input_schema(
@@ -24,7 +21,6 @@ module CF
24
21
  )
25
22
 
26
23
  annotations(
27
- title: TITLE,
28
24
  read_only_hint: true,
29
25
  destructive_hint: false,
30
26
  idempotent_hint: true,
@@ -9,10 +9,7 @@ module CF
9
9
  class GetDetails < ::MCP::Tool
10
10
  extend ResponseHelpers
11
11
 
12
- TITLE = "Get Details"
13
-
14
12
  tool_name "get_details"
15
- title TITLE
16
13
  description "Get detailed documentation for a specific Cute Framework item by exact name"
17
14
 
18
15
  input_schema(
@@ -24,7 +21,6 @@ module CF
24
21
  )
25
22
 
26
23
  annotations(
27
- title: TITLE,
28
24
  read_only_hint: true,
29
25
  destructive_hint: false,
30
26
  idempotent_hint: true,
@@ -9,10 +9,7 @@ module CF
9
9
  class GetTopic < ::MCP::Tool
10
10
  extend ResponseHelpers
11
11
 
12
- TITLE = "Get Topic"
13
-
14
12
  tool_name "get_topic"
15
- title TITLE
16
13
  description "Get the full content of a Cute Framework topic guide document"
17
14
 
18
15
  input_schema(
@@ -24,7 +21,6 @@ module CF
24
21
  )
25
22
 
26
23
  annotations(
27
- title: TITLE,
28
24
  read_only_hint: true,
29
25
  destructive_hint: false,
30
26
  idempotent_hint: true,
@@ -9,10 +9,7 @@ module CF
9
9
  class ListCategory < ::MCP::Tool
10
10
  extend ResponseHelpers
11
11
 
12
- TITLE = "List Category"
13
-
14
12
  tool_name "list_category"
15
- title TITLE
16
13
  description "List all items in a specific category, or list all available categories"
17
14
 
18
15
  input_schema(
@@ -24,7 +21,6 @@ module CF
24
21
  )
25
22
 
26
23
  annotations(
27
- title: TITLE,
28
24
  read_only_hint: true,
29
25
  destructive_hint: false,
30
26
  idempotent_hint: true,
@@ -9,10 +9,7 @@ module CF
9
9
  class ListTopics < ::MCP::Tool
10
10
  extend ResponseHelpers
11
11
 
12
- TITLE = "List Topics"
13
-
14
12
  tool_name "list_topics"
15
- title TITLE
16
13
  description "List all Cute Framework topic guides, optionally filtered by category or in recommended reading order"
17
14
 
18
15
  input_schema(
@@ -24,7 +21,6 @@ module CF
24
21
  )
25
22
 
26
23
  annotations(
27
- title: TITLE,
28
24
  read_only_hint: true,
29
25
  destructive_hint: false,
30
26
  idempotent_hint: true,
@@ -9,10 +9,7 @@ module CF
9
9
  class MemberSearch < ::MCP::Tool
10
10
  extend ResponseHelpers
11
11
 
12
- TITLE = "Member Search"
13
-
14
12
  tool_name "member_search"
15
- title TITLE
16
13
  description "Search Cute Framework structs by member name or type"
17
14
 
18
15
  input_schema(
@@ -25,7 +22,6 @@ module CF
25
22
  )
26
23
 
27
24
  annotations(
28
- title: TITLE,
29
25
  read_only_hint: true,
30
26
  destructive_hint: false,
31
27
  idempotent_hint: true,
@@ -9,10 +9,7 @@ module CF
9
9
  class ParameterSearch < ::MCP::Tool
10
10
  extend ResponseHelpers
11
11
 
12
- TITLE = "Parameter Search"
13
-
14
12
  tool_name "parameter_search"
15
- title TITLE
16
13
  description "Find Cute Framework functions by parameter or return type"
17
14
 
18
15
  input_schema(
@@ -29,7 +26,6 @@ module CF
29
26
  )
30
27
 
31
28
  annotations(
32
- title: TITLE,
33
29
  read_only_hint: true,
34
30
  destructive_hint: false,
35
31
  idempotent_hint: true,
@@ -11,10 +11,7 @@ module CF
11
11
  extend ResponseHelpers
12
12
  extend SearchResultFormatter
13
13
 
14
- TITLE = "Search"
15
-
16
14
  tool_name "search"
17
- title TITLE
18
15
  description "Search Cute Framework documentation across all types (functions, structs, enums, topics)"
19
16
 
20
17
  input_schema(
@@ -29,7 +26,6 @@ module CF
29
26
  )
30
27
 
31
28
  annotations(
32
- title: TITLE,
33
29
  read_only_hint: true,
34
30
  destructive_hint: false,
35
31
  idempotent_hint: true,
@@ -2,6 +2,6 @@
2
2
 
3
3
  module CF
4
4
  module MCP
5
- VERSION = "0.17.0"
5
+ VERSION = "0.17.2"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cf-mcp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.17.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Usewicz
@@ -85,6 +85,7 @@ email:
85
85
  - piotr@layer22.com
86
86
  executables:
87
87
  - cf-mcp
88
+ - cf-mcp-wrapper
88
89
  extensions: []
89
90
  extra_rdoc_files: []
90
91
  files:
@@ -95,6 +96,7 @@ files:
95
96
  - Rakefile
96
97
  - config.ru
97
98
  - exe/cf-mcp
99
+ - exe/cf-mcp-wrapper
98
100
  - lib/cf/mcp.rb
99
101
  - lib/cf/mcp/cli.rb
100
102
  - lib/cf/mcp/downloader.rb