| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
tinystruct MCP is a demonstration project that showcases how to develop Model Context Protocol (MCP) tools using the tinystruct framework. It provides a modular Java-based MCP server with built-in tools for file system management and GitHub operations.
This project is designed to bridge the gap between Large Language Models (LLMs) and external systems, enabling AI agents to interact with the physical file system and version control systems securely and efficiently.
The project is organized into submodules, each representing a specific domain of tools:
Clone the repository and build the modules using Maven:
git clone https://github.com/tinystruct/tinystruct-mcp.git
cd tinystruct-mcp
mvn clean installYou can start the server programmatically or via the command line.
Use the bin/dispatcher (for Linux/macOS) or bin/dispatcher.cmd (for Windows) script to start the server:
# On Linux / macOS
bin/dispatcher start --import org.tinystruct.system.HttpServer --import org.tinystruct.mcp.GitHub --import org.tinystruct.mcp.FileSystem --import org.tinystruct.mcp.Database --import org.tinystruct.mcp.websearch.WebSearch --server-port 777
# On Windows
bin\dispatcher.cmd start --import org.tinystruct.system.HttpServer --import org.tinystruct.mcp.GitHub --import org.tinystruct.mcp.FileSystem --import org.tinystruct.mcp.Database --import org.tinystruct.mcp.websearch.WebSearch --server-port 777Include the following in your Main class to boot the server with integrated tools:
import org.tinystruct.ApplicationContext;
import org.tinystruct.application.Context;
import org.tinystruct.system.ApplicationManager;
import org.tinystruct.system.HttpServer;
import org.tinystruct.mcp.GitHub;
import org.tinystruct.mcp.FileSystem;
import org.tinystruct.mcp.Database;
import org.tinystruct.mcp.websearch.WebSearch;
public class Main {
public static void main(String[] args) {
Context ctx = new ApplicationContext();
ctx.setAttribute("--server-port", "777");
ApplicationManager.init();
ApplicationManager.install(new GitHub());
ApplicationManager.install(new FileSystem());
ApplicationManager.install(new Database());
ApplicationManager.install(new WebSearch());
ApplicationManager.install(new HttpServer());
ApplicationManager.call("start", ctx);
}
}| Action | Description |
|---|---|
| github/clone | Clone a Git repository |
| github/pull | Pull changes from a remote repository |
| github/push | Push changes to a remote repository |
| github/status | Get the current status of a local repository |
| github/issues | Fetch GitHub issues for a repository |
| github/prs | Fetch GitHub pull requests |
| github/actions | List GitHub Actions workflows |
| Action | Description |
|---|---|
| filesystem/info | Get metadata about a file or directory |
| filesystem/exists | Check if a path exists |
| filesystem/read | Read contents of a file (UTF-8 or Base64) |
| filesystem/write | Write content to a file (overwrite or append) |
| filesystem/list | List items in a directory |
| filesystem/copy | Copy a file or directory |
| filesystem/move | Move or rename a file or directory |
| filesystem/delete | Delete a file or directory (recursive support) |
| filesystem/mkdir | Create a new directory |
| Action | Description |
|---|---|
| db/list-tables | List all tables in the connected database |
| db/describe | Describe the columns and types of a specific table |
| db/query | SELECT rows from a table with optional WHERE and LIMIT |
| db/insert | INSERT a row into a table |
| db/update | UPDATE rows in a table matching a WHERE clause |
| db/delete | DELETE rows from a table matching a WHERE clause |
| db/execute | Execute arbitrary SQL |
| Action | Description |
|---|---|
| websearch/search | Perform a web search using DuckDuckGo Instant Answer API |
Creating new MCP tools is straightforward. Simply extend the MCPTool class and annotate your methods.
@Action(value = "mytool/greet", description = "Greet a user", arguments = {
@Argument(key = "name", description = "User's name", type = "string")
})
public String greet(String name) {
return "Hello, " + name + "!";
}For a detailed guide on creating custom tools, check out DEVELOPING_TOOLS.md.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Note: MCP stands for Model Context Protocol.
| Back | FazBrowse Home | New Git URL |