Artemis

MCP Servers

How Artemis runs your browser and controls your machine.

Most AI agents have their tools hardcoded into a single monolithic script. I built Artemis differently. It uses the Model Context Protocol (MCP) to talk to standalone tool servers.

When the agent boots, it dynamically asks the servers what they can do. If you want to add a new capability, you don't rewrite the core loop—you just add another MCP server.

Browser Server

This is the Playwright implementation. It launches a Chromium instance and navigates the web.

I learned the hard way that blind DOM parsing rarely works for AI agents. They get stuck, hallucinate buttons, or silently fail. So this server includes a vision loop. It injects a status overlay directly into the browser window, so you can actually watch what the agent is investigating, clicking, or typing in real-time.

navigate

Navigate the browser to any specific URL.

click

Click an element on the page (supports CSS or text selectors).

type

Type text into an input element (with optional clear/submit flags).

screenshot

Take a screenshot of the current page, returning a base64 PNG.

get_text

Retrieve textual content from the page DOM (up to 5000 chars).

scroll

Scroll up or down on the page by a specific pixel amount.

back

Navigate back in the browser history.

wait

Wait for a specific selector to appear or sleep for a duration.

execute_js

Execute arbitrary JavaScript code on the loaded page.

close_browser

Close the Playwright Chromium browser instance.

Computer Server

This server gives the agent local control over the machine. It can query system specs, list processes, open apps via winget, or read/write your clipboard.

I use this mostly for housekeeping. "Clean out my downloads folder," "kill whatever is eating port 3000," or "summarize the text I just copied."

system_info

Get system details like CPU, memory, OS platform, and IP.

list_apps

List installed applications via winget.

open_app

Open or launch an application by its winget package ID.

run_command

Execute a shell command in the specified working directory.

list_processes

List active running processes sorted by memory usage.

kill_process

Terminate a process by name or PID.

clipboard_read

Read the current host system clipboard contents.

clipboard_write

Write a text string to the host system clipboard.

notify

Display a Windows desktop toast notification.

open_url

Open a URL in the default system web browser.

set_volume

Adjust host system audio volume (0-100).

screenshot

Take a screenshot of the physical host desktop.

wifi_info

Get current WiFi SSID and signal strength metrics.

disk_usage

Query total and free disk space for all drives.

environment_variable

Get or set environment variables on the host system.

Scheduler Server

A SQLite-backed scheduler that gives the agent a sense of time.

It runs an autonomous off-hours batch process. If you ask Artemis to research a topic, but you don't need the answer immediately, it defers the heavy parsing until 2 AM when your CPU is idle.

More importantly, it allows for self-prompting. Artemis can schedule a "wake-up" event—essentially sending a message to its future self. This lets it daisy-chain autonomous tasks across multiple days without requiring me to explicitly trigger them.

create_event

Create a scheduled event, reminder, or wake-up prompt.

list_events

Query upcoming active events filtered by status or date.

get_event

Get full details of a scheduled event by its ID.

update_event

Modify title, prompt, timing, or status of an existing event.

delete_event

Permanently delete a scheduled event by ID.

defer_to_offhours

Queue a non-urgent task to run during the nightly 2 AM window.