1. Conduid
  2. Developer Tools
  3. Easychatdm
MCP server · Developer Tools

Easychatdm

Example MCP Server tools for playing D&D with generative AIs. This project is for educational purposes so little attention is given to good code design.

Unclaimed last commit a year ago devtools
48Fair

Scored 6 days ago · breakdown

About Easychatdm

Easychatdm is an MCP server published by cote in the Developer Tools category: example MCP Server tools for playing D&D with generative AIs. This project is for educational purposes so little attention is given to good code design.

The repository has 16 stars and 4 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/cote/EasyChatDM

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Easychatdm

Powered by Claude · Grounded in docs

I know everything about Easychatdm. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • !License declaredNo license file. Legally you have no right to use it in a product.
  • ✓Tests presentA test suite exists in the repository.
  • !Dependencies pinnedNo lockfile. Installs can pull different code over time.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

0.0.30.0.3

README

EasyChatDM - Demonstrates creating a simple MCP Server tools

Example MCP Server tools for playing D&D with generative AIs. These tools are oracles that are used to determine random yes/no questions but also descriptions, events, NPCs, etc. They are "random tables" to use when you want to introduce some uncertainty, twists and turns, and randomness to your gaming. This project is for educational purposes, so little attention is given to good code design.

These tools are MCP Server tools that will work with Claude desktop and other MCP Clients. They're written in Spring AI MCP. This project is for education, so no consideration is given to good design. Instead, the code is written to make it easy to follow step-by-step how to create tools.

Running it

You should copy over the contents of contents of src/main/easychatdmdir/prompts/ to ~/.easychatdm. These are files for prompts, oracles, etc. uses.

Database configuration

The DM Journal now persists to a database instead of plain JSON files. Local runs default to SQLite with the database file stored under ~/.easychatdm/easychatdm.db. Switching between SQLite and PostgreSQL is controlled entirely through system properties or environment variables.

Available properties

Property Default Description
easychatdm.dir ${user.home}/.easychatdm Base directory for prompts/oracles and, for SQLite, the database file location.
easychatdm.db.type sqlite Selects sqlite (local file) or postgres (remote database).
easychatdm.db.sqlite.path (derived from easychatdm.dir) Overrides the full path to the SQLite database. If set to a directory, the file name below is appended.
easychatdm.db.sqlite.file-name easychatdm.db Name used when creating the SQLite database under the resolved directory.
easychatdm.db.sqlite.pool-size 1 HikariCP pool size when using SQLite (typically keep at 1).
easychatdm.db.postgres.url (required when db.type=postgres) JDBC URL for the PostgreSQL instance.
easychatdm.db.postgres.username (required when db.type=postgres) Database username.
easychatdm.db.postgres.password (empty string) Database password.
easychatdm.db.postgres.pool-size 4 HikariCP pool size when using PostgreSQL.
easychatdm.journal.export-files true for SQLite, false for Postgres Mirrors journal contents to JSON/Markdown files when enabled.

For Cloud Foundry (or any remote deployment) set the system properties with JAVA_OPTS, for example:

JAVA_OPTS: >-
  -Deasychatdm.db.type=postgres
  -Deasychatdm.db.postgres.url=${JDBC_DATABASE_URL}
  -Deasychatdm.db.postgres.username=${JDBC_DATABASE_USERNAME}
  -Deasychatdm.db.postgres.password=${JDBC_DATABASE_PASSWORD}

Acknowledgements

More

See the ChatDM project for a more complex, feature-ful somewhat better designed version of this EasyChatDM.

Here are some videos going over the project:

  1. Part one of a video series
    where I build a very simple MCP too-land.
  2. In part two of the video series where I build a file-based oracle and go over how to use the logs Claude makes and start doing your own logging.
  3. In part three, I build an MCP Resource to serve as a DM Journal to persist game information between play sessions.
  4. Finally, I get around to making an MCP Prompt, which is really exciting.
    This is the first glimpse at something that feels "agentic."

Keep an eye on the playlist for the rest of the videos as they come out.

References

Versions

  • 0.0.4 - DM Journal stored in SQLite by default, switchable to PostgreSQL via system properties.
  • 0.0.3 - relativly stable, before converting over to use services for DM journal storage. This version still depends on file access.

README fetched from the repository 7 days ago. The original is authoritative.

Questions

About Easychatdm

How do I install Easychatdm?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Easychatdm safe to use with an AI agent?

Its trust score is 48 out of 100 (fair). It passes 3 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Easychatdm still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.