A modern, AI-powered Discord app for server automation and administration, built with Node.js and the @purinton/discord foundation. Architect integrates the Model Context Protocol (MCP) and OpenAI for conversational, natural language server management.
- Features
- Getting Started
- Configuration
- Running as a Service (systemd)
- Docker
- Customization
- Testing
- Support
- License
- Links
- AI-driven Discord server automation and administration
- Conversational interface: chat with Architect by mentioning
@Architect
or replying to its messages - Only responds to users with Administrator permissions for security
- Multi-language/localized responses (see
locales/
) - Command and event handler architecture (see
commands/
andevents/
) - Environment variable support via dotenv
- Logging and signal handling via
@purinton/common
- Ready for deployment with systemd or Docker
- Jest for testing
-
Clone this project:
git clone https://github.com/purinton/architect.git cd architect npm install
-
Set up your environment:
- Copy
.env.example
to.env
and fill in your Discord app token and other secrets. - Edit
package.json
(name, description, author, etc.) - Update this
README.md
as needed.
- Copy
-
Start the app locally:
npm start # or node architect.mjs
- All configuration is handled via environment variables in the
.env
file. - See
.env.example
for required and optional variables. - The
openai.json
file configures OpenAI prompt and tool integration. - The
tools.json
file (ortools.json.example
) defines available MCP tools.
-
Copy
architect.service
to/usr/lib/systemd/system/architect.service
. -
Edit the paths and user/group as needed.
-
Reload systemd and start the service:
sudo systemctl daemon-reload sudo systemctl enable architect sudo systemctl start architect sudo systemctl status architect
-
Build the Docker image:
docker build -t architect .
-
Run the container:
docker run --env-file .env architect
- Add new commands in the
commands/
directory. - Each command has a
.json
definition (for Discord registration/localization) and a.mjs
handler (for logic). - Example: see
commands/help.json
andcommands/help.mjs
.
- Add or modify event handlers in the
events/
directory. - Each Discord event (e.g.,
ready
,messageCreate
,interactionCreate
) has its own handler file. - Example: see
events/messageCreate.mjs
for AI chat logic.
- Add or update language files in the
locales/
directory. - Localize command names, descriptions, and app responses.
- Example: see
locales/en-US.json
for English responses.
-
Run tests with:
npm test
-
Tests are in the
tests/
folder and cover commands, events, and tools.
For help, questions, or to chat with the author and community, visit: