The MCP Studio Tool SDK is the extension-development repository for EoF MCP Studio on macOS. It contains the native custom-tool ABI, example C/Objective-C++ plugins, Node.js and Python runtime plugins, JavaScript tool handlers, importable MCP Studio configuration, and an experimental Node.js neural-network lab.
- macOS 15 or newer
- Xcode and the Xcode command-line tools
- CMake 3.25 or newer for CMake builds
- Node.js 18 or newer for
nnlab/poc3 - Node.js and/or Python 3 when using the corresponding runtime plugin
| Path | Purpose |
|---|---|
include/ |
Public C ABI and logging declarations for native plugins |
ToolJSONBridge/ |
Foundation-based JSON bridge shared by Objective-C++ plugins |
SamplePlugin/ |
Example dynamic-library and macOS bundle implementations |
NodeJSRuntimePlugin/ |
Custom-tool bundle that launches Node.js scripts |
PythonRuntimePlugin/ |
Custom-tool bundle that launches Python scripts |
Scripts/ |
JavaScript handlers executed by MCP Studio's scripting host |
config/ |
Importable tools, skills, prompts, resources, multi-agent workflows, and provider examples |
skills/codereview/ |
Markdown prompt assets used by the code-review skill configuration |
nnlab/poc3/ |
Dependency-free generative character-model experiment |
ToolSDK.xcodeproj |
Xcode project for all native SDK targets |
The shared ToolSDK scheme builds all native products:
xcodebuild \
-project ToolSDK.xcodeproj \
-scheme ToolSDK \
-configuration Debug \
buildIndividual shared schemes are available for NodeJSRuntimeTool, PythonRuntimeTool, and SamplePluginDyLib. The project contains these targets:
NodeJSRuntimeToolPythonRuntimeToolSamplePluginBundleSamplePluginDyLibToolJSONBridge
Each plugin can also be configured independently:
cmake -S SamplePlugin -B SamplePlugin/build
cmake --build SamplePlugin/build
cmake -S NodeJSRuntimePlugin -B NodeJSRuntimePlugin/build
cmake --build NodeJSRuntimePlugin/build
cmake -S PythonRuntimePlugin -B PythonRuntimePlugin/build
cmake --build PythonRuntimePlugin/buildThe projects default to universal arm64;x86_64 builds with a macOS 15.0 deployment target. See the plugin-specific guides for output paths and runtime packaging:
include/ToolABI.h defines ABI version 3. Every native custom-tool plugin exports:
const ToolPluginDescriptor *toolDescribe(void);
void toolEntry(const char *sid,
const char *toolName,
const char *params,
char **resultJson,
size_t *resultSize);toolDescribe() returns static metadata, including the ABI version, tool identifier, entry-point name, and capability JSON. toolEntry() returns a UTF-8 JSON buffer allocated with malloc; the host owns that buffer and releases it with free. resultSize includes the trailing NUL byte.
A successful native result normally uses the MCP tool-result shape:
{
"structuredContent": { "success": true },
"content": [{ "type": "text", "text": "Completed" }],
"isError": false
}Scripts/tool_entry.js dispatches the script handlers used by the JSON
definitions in config/Tools/. The registered handler groups are:
- file and directory access
- Clang, GCC, CMake, QMake, Xcode, and shell operations
- HTTP requests, downloads, status checks, webhooks, and HTML extraction
- document/temp path discovery
- skill-script execution
Script tools run inside EoF MCP Studio's scripting environment and use host-provided APIs such as
MCPStudio.fileExists, MCPStudio.process, and MCPStudio.httpRequest; they are not standalone
Node.js modules.
See the scripting reference and handler catalog.
config/ is example/import content for EoF MCP Studio:
config/Tools/: script, built-in, and native custom-tool definitionsconfig/Skills/: reusable task workflowsconfig/Prompts/: prompt definitionsconfig/Resources/: linked reference resourcesconfig/MultiAgents/: example agent workflowsconfig/aiproviders.jsonandconfig/sysprompts.json: provider and system prompts
${TOOLSDK} in a configuration path is resolved by EoF MCP Studio to the installed SDK root.
Built-in tool definitions such as Calendar, Contacts, and FileResourceHandler describe host-app
capabilities; their implementations are not part of this repository.
This repository supplies tools and configuration consumed by EoF MCP Studio. It does not contain the application's MCP HTTP server implementation. README-MCPServer.md documents that boundary and the protocol-facing result contract used by SDK plugins.
nnlab/poc3 trains and serves a small character-level generative model in plain
Node.js. It includes Safetensors persistence, incremental training, deterministic
dataset replay, CLI inference, a browser UI, and tests. Generated model.safetensors
and the default dataset.txt are not currently checked in; follow the
PoC quick start to create them.
- JavaScript scripting reference
- Handler catalog
- Native sample plugin
- MCP integration boundary
- Node.js runtime plugin
- Python runtime plugin
- Neural-network PoC
Copyright (C) 2026 EoF Software Lab. All rights reserved. See LICENSE.