Skip to content

Latest commit

 

History

186 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CF::MCP

CF::MCP is an MCP server providing documentation tools for the Cute Framework, a C/C++ 2D game framework.

The MCP server supports two modes of operation:

  • STDIO Mode: Communicates via standard input and output streams, suitable for integration with CLI tools and desktop applications.
  • HTTP Mode: Operates as an HTTP server with a web interface at the root and MCP endpoint at /http.

Features

  • Documentation Generation: Automatically generates documentation for Cute Framework projects by indexing the the header files and extracting the documentation from the comments.
  • Search Functionality: Provides a search feature to quickly find structs, classes, functions, and other elements within the documentation.

Installation

Install the gem and add to the application's Gemfile by executing:

bundle add cf-mcp

If bundler is not being used to manage dependencies, install the gem by executing:

gem install cf-mcp

Usage

To start the MCP server, run the following command in your terminal:

cf-mcp stdio --root /path/to/cute_framework_project  # STDIO mode
cf-mcp http --root /path/to/cute_framework_project   # HTTP mode with web UI

Command line

Every tool is also a command, so no MCP client is needed. Index the docs once, then look things up:

cf-mcp index --root /path/to/cute_framework   # re-run after updating Cute Framework
cf-mcp search sprite --type function --limit 5
cf-mcp get_details CF_Sprite
cf-mcp list_category sprite

The commands are search, get_details, find_related, parameter_search, member_search, list_category, list_topics and get_topic. Run cf-mcp <command> --help for a command's arguments.

The index is cached in ~/.cache/cf-mcp (or $XDG_CACHE_HOME/cf-mcp, or $CF_MCP_CACHE_DIR) and rebuilt automatically when a header changes. Each --root keeps its own cache, so projects on different Cute Framework versions can take turns without reindexing: pass --root (or set CF_HEADERS_PATH) to say which one a command should use. Without either, a command uses the last one it was given. Cache files are read back with Marshal, so a cache directory that belongs to another user or that everyone can write to is refused.

Inspecting with MCP Inspector

You can use the MCP Inspector to debug and test the server.

STDIO Mode

Run the inspector with the cf-mcp command directly:

npx @modelcontextprotocol/inspector cf-mcp stdio --root /path/to/cute_framework

This starts the inspector web UI at http://localhost:6274 connected to your MCP server.

HTTP Mode

First, start the server in HTTP mode:

cf-mcp http --root /path/to/cute_framework --port 9292

Then launch the inspector and connect using Streamable HTTP transport to:

http://localhost:9292/http

When serving under a non-loopback hostname, allow it via CF_MCP_ALLOWED_HOSTS (comma-separated), otherwise requests are rejected with 403 Invalid Host header:

CF_MCP_ALLOWED_HOSTS=mcp.example.com cf-mcp http --root /path/to/cute_framework

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/pusewicz/cf-mcp.

License

The gem is available as open source under the terms of the MIT License.

About

MCP server providing documentation tools for Cute Framework

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages