summaryrefslogtreecommitdiff
path: root/src/mcp/tools/common
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-06-30 19:03:25 +0900
committertanaka takashi <isazaka@gmail.com>2026-06-30 19:03:25 +0900
commit05c8e0a31a0d4192c590e833b24393208e1c751f (patch)
treef7c2c82c9327abde67bf3acf1d0258573b3bc6c2 /src/mcp/tools/common
parent4bc721c3bf7589b519c5730d093f704ce56e3f09 (diff)
fix: MCPCをvendored fork化しMCP準拠と接続安定性を改善
- Git submoduleを廃止してMCPCを直接管理 - Windowsで254リクエスト付近に発生する切断を修正 - JSON-RPC 2.0エラー応答を標準化 - tool schemaとruntimeの必須・任意引数を一致 - 1000回連続呼び出しの回帰テストを追加
Diffstat (limited to 'src/mcp/tools/common')
-rw-r--r--src/mcp/tools/common/common.c7
-rw-r--r--src/mcp/tools/common/common.h3
2 files changed, 8 insertions, 2 deletions
diff --git a/src/mcp/tools/common/common.c b/src/mcp/tools/common/common.c
index 71b6f68..d6669f8 100644
--- a/src/mcp/tools/common/common.c
+++ b/src/mcp/tools/common/common.c
@@ -104,7 +104,8 @@ bool
tiny_mcp_tool_add_property(mcpc_tool_t *tool,
const char *name,
const char *description,
- mcpc_anytype_t type)
+ mcpc_anytype_t type,
+ bool required)
{
mcpc_toolprop_t *property
= mcpc_toolprop_new2((const char8_t *)name, (const char8_t *)description, type);
@@ -112,6 +113,10 @@ tiny_mcp_tool_add_property(mcpc_tool_t *tool,
{
return false;
}
+ if (mcpc_toolprop_set_required(property, required) != MCPC_EC_0)
+ {
+ return false;
+ }
mcpc_tool_add_toolprop(tool, property);
return true;
}
diff --git a/src/mcp/tools/common/common.h b/src/mcp/tools/common/common.h
index 6b1cc96..07caea1 100644
--- a/src/mcp/tools/common/common.h
+++ b/src/mcp/tools/common/common.h
@@ -14,6 +14,7 @@ mcpc_tool_t *tiny_mcp_tool_new(const char *name, const char *description, mcpc_t
bool tiny_mcp_tool_add_property(mcpc_tool_t *tool,
const char *name,
const char *description,
- mcpc_anytype_t type);
+ mcpc_anytype_t type,
+ bool required);
#endif