legion-mcp 0.5.8 → 0.5.9
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 +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/legion/mcp/server.rb +3 -1
- data/lib/legion/mcp/tools/knowledge_health.rb +57 -0
- data/lib/legion/mcp/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: be92d2fce17740050cde5ca1b45deb3d678e5e2e48fca5e1fc4d7057118b068c
|
|
4
|
+
data.tar.gz: 4a01d5e8f26ee0f0203f59bc584cec5caffb04d45d6137f9dced2b7dc1d925b4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ed9a3d3eb3a686443a213fce62729d92e0c892b3ced57921ac0ec6312974e3ac4dd588c7cb01eb32943a2063dcdaf84e03f4f1b9cf48783c08489e3be738ee03
|
|
7
|
+
data.tar.gz: bdf60cb8ebb7f994097f50e50bcef95ae2b4da27c3958edce57d8d897bdac8f3c5fee3d3b668fd4f971b9b06c6375e203df8e9aad7204b24e581fb0032590b95
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# legion-mcp Changelog
|
|
2
2
|
|
|
3
|
+
## [0.5.9] - 2026-03-26
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- `legion.knowledge_health` MCP tool: health report for document knowledge base (local, Apollo, sync stats)
|
|
7
|
+
- Optional `path:` input (falls back to Settings corpus_path)
|
|
8
|
+
- Tool count: 57 → 58
|
|
9
|
+
|
|
3
10
|
## [0.5.8] - 2026-03-26
|
|
4
11
|
|
|
5
12
|
### Added
|
data/lib/legion/mcp/server.rb
CHANGED
|
@@ -65,6 +65,7 @@ require_relative 'tools/mind_growth_build_queue'
|
|
|
65
65
|
require_relative 'tools/mind_growth_cognitive_profile'
|
|
66
66
|
require_relative 'tools/mind_growth_health'
|
|
67
67
|
require_relative 'tools/query_knowledge'
|
|
68
|
+
require_relative 'tools/knowledge_health'
|
|
68
69
|
require_relative 'catalog_bridge'
|
|
69
70
|
require_relative 'resources/runner_catalog'
|
|
70
71
|
require_relative 'resources/extension_info'
|
|
@@ -129,7 +130,8 @@ module Legion
|
|
|
129
130
|
Tools::MindGrowthBuildQueue,
|
|
130
131
|
Tools::MindGrowthCognitiveProfile,
|
|
131
132
|
Tools::MindGrowthHealth,
|
|
132
|
-
Tools::QueryKnowledge
|
|
133
|
+
Tools::QueryKnowledge,
|
|
134
|
+
Tools::KnowledgeHealth
|
|
133
135
|
].freeze
|
|
134
136
|
|
|
135
137
|
class << self
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module MCP
|
|
5
|
+
module Tools
|
|
6
|
+
class KnowledgeHealth < ::MCP::Tool
|
|
7
|
+
tool_name 'legion.knowledge_health'
|
|
8
|
+
description 'Get health report for the document knowledge base. Returns local, Apollo, and sync stats.'
|
|
9
|
+
|
|
10
|
+
input_schema(
|
|
11
|
+
properties: {
|
|
12
|
+
path: { type: 'string', description: 'Corpus directory path (falls back to settings)' }
|
|
13
|
+
}
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
class << self
|
|
17
|
+
def call(path: nil)
|
|
18
|
+
return error_response('lex-knowledge is not available') unless knowledge_available?
|
|
19
|
+
|
|
20
|
+
resolved = resolve_path(path)
|
|
21
|
+
return error_response('No corpus path configured') unless resolved
|
|
22
|
+
|
|
23
|
+
result = Legion::Extensions::Knowledge::Runners::Maintenance.health(path: resolved)
|
|
24
|
+
text_response(result)
|
|
25
|
+
rescue StandardError => e
|
|
26
|
+
Legion::Logging.warn("KnowledgeHealth#call failed: #{e.message}") if defined?(Legion::Logging)
|
|
27
|
+
error_response("Knowledge health failed: #{e.message}")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
private
|
|
31
|
+
|
|
32
|
+
def knowledge_available?
|
|
33
|
+
defined?(Legion::Extensions::Knowledge::Runners::Maintenance)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def resolve_path(path)
|
|
37
|
+
return path if path && !path.empty?
|
|
38
|
+
return nil unless defined?(Legion::Settings)
|
|
39
|
+
|
|
40
|
+
Legion::Settings.dig(:knowledge, :corpus_path)
|
|
41
|
+
rescue StandardError
|
|
42
|
+
nil
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def text_response(data)
|
|
46
|
+
::MCP::Tool::Response.new([{ type: 'text', text: Legion::JSON.dump(data) }])
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def error_response(msg)
|
|
50
|
+
body = { error: msg }
|
|
51
|
+
::MCP::Tool::Response.new([{ type: 'text', text: Legion::JSON.dump(body) }], error: true)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
data/lib/legion/mcp/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: legion-mcp
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
@@ -171,6 +171,7 @@ files:
|
|
|
171
171
|
- lib/legion/mcp/tools/get_status.rb
|
|
172
172
|
- lib/legion/mcp/tools/get_task.rb
|
|
173
173
|
- lib/legion/mcp/tools/get_task_logs.rb
|
|
174
|
+
- lib/legion/mcp/tools/knowledge_health.rb
|
|
174
175
|
- lib/legion/mcp/tools/list_chains.rb
|
|
175
176
|
- lib/legion/mcp/tools/list_extensions.rb
|
|
176
177
|
- lib/legion/mcp/tools/list_peers.rb
|