fix(extension): 向MCP命令传递插件设置
This commit is contained in:
@@ -633,6 +633,7 @@ class PluginRuntime:
|
||||
"command_id": _spec.command_id,
|
||||
"arguments": arguments,
|
||||
"context": context,
|
||||
"settings": settings,
|
||||
"secrets": secret_values,
|
||||
}
|
||||
},
|
||||
|
||||
@@ -71,8 +71,10 @@ def call_tool(request_id: int, params: dict[str, Any]) -> None:
|
||||
envelope = arguments.get("_notesagent") or {}
|
||||
command_arguments = envelope.get("arguments") or {}
|
||||
context = envelope.get("context") or {}
|
||||
settings = envelope.get("settings") or {}
|
||||
secrets = envelope.get("secrets") or {}
|
||||
message = command_arguments.get("message") or context.get("selection") or ""
|
||||
message = f"{settings.get('message_prefix', '')}{message}"
|
||||
respond(
|
||||
request_id,
|
||||
{
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
section_id: mcp-fixture.general
|
||||
schema_version: 1
|
||||
fields:
|
||||
- key: message_prefix
|
||||
label: Message Prefix
|
||||
type: string
|
||||
default: ""
|
||||
- key: api_key
|
||||
label: Fixture API Key
|
||||
type: secret
|
||||
|
||||
@@ -415,6 +415,9 @@ def test_mcp_command_target_receives_scoped_context_and_declared_secret(
|
||||
mcp_container.plugins.put_setting_secret(
|
||||
"mcp-fixture", "api_key", "mcp-command-secret"
|
||||
)
|
||||
mcp_container.plugins.update_settings(
|
||||
"mcp-fixture", 1, {"message_prefix": "Fixture: "}
|
||||
)
|
||||
result = await mcp_container.plugins.execute_command(
|
||||
"mcp-fixture.notify",
|
||||
{},
|
||||
@@ -427,7 +430,7 @@ def test_mcp_command_target_receives_scoped_context_and_declared_secret(
|
||||
assert result.effect.type == "notification"
|
||||
assert result.effect.payload == {
|
||||
"level": "success",
|
||||
"message": "来自选区",
|
||||
"message": "Fixture: 来自选区",
|
||||
"secret_configured": True,
|
||||
}
|
||||
assert "mcp-command-secret" not in repr(
|
||||
|
||||
Reference in New Issue
Block a user