Skip to content
View craigk5n's full-sized avatar

Block or report craigk5n

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
craigk5n/README.md

Craig Knudsen

Principal AI Engineer with 25+ years building production systems — now focused on agentic AI, multi-agent orchestration, and the Model Context Protocol (MCP). I build code-first agents with LangGraph, human-in-the-loop control, and real evaluation suites. Creator and maintainer of WebCalendar (1M+ downloads), and shipping open source since before the term existed (see the last bullet).

AI / Agentic / MCP

  • scheduling-agent — a LangGraph agent that turns natural language ("set up a recurring standup, avoiding Fridays") into validated, RFC 5545-compliant calendar events on WebCalendar via MCP. Human-in-the-loop approval before every write (LangGraph interrupt + SQLite checkpointing + reject→replan), a 20-case RRULE/DST eval suite that gates CI, pluggable model providers (Anthropic, OpenRouter, or local via Ollama/LM Studio), and LangSmith tracing.
  • agentic-dev-team — a self-hosted autonomous coding team. You describe what to build and approve the plan; a pipeline of AI agents (built on opencode) handles planning, coding, review, testing, and security checking end-to-end, coordinated through a self-hosted git forge, a real-time board, and per-run ephemeral Docker sandboxes.
  • k5n-mcp-hub — a registry and management hub for MCP servers (Python/FastAPI): server discovery, health monitoring, request tracing, an MCP reverse proxy, and fault injection for chaos-testing how agents and clients handle slow, broken, and non-conforming servers.
  • WebCalendar MCP server — exposes calendar operations (events, search, scheduling) to AI assistants over MCP.

Calendar & iCalendar ecosystem

  • WebCalendar — PHP 8 LAMP multi-user calendar I created and maintain; 1M+ downloads, 30+ translations. Recently modernized the UI (Bootstrap/jQuery, replacing legacy Prototype.js) and rewrote the web-based installer for PHP 8.
  • webcalendar-core — modern PHP 8.1+ Clean Architecture library (26 services, 17 repository interfaces, RFC 5545 iCalendar) that will power the next generation of WebCalendar.
  • php-icalendar-core — RFC 5545-compliant iCalendar parser/writer for PHP 8.1+ with strict/lenient modes and recurrence support; also the correctness backbone behind scheduling-agent's RRULE/DST validation.

Other projects

  • ilibgo — Go image library with an X11-style API (a port of my C ilib) · Cliquetool — Go graph-clique tool · GTimer — Linux GTK time tracker.

Contributions

  • CVE Services — contributed to MITRE's CVE Program REST API (containerizing the Node.js app; also built the AWS CodePipeline CI/CD).

Older / archived

Elsewhere

LinkedIn · k5n.us · craig AT k5n.us

Fun fact: my first open-source release was xapplaunch, a system menubar for HP-UX/SunOS/AIX/OSF-1, posted to a public FTP server in 1995 — three years before the term "open source" existed.

Pinned Loading

  1. webcalendar webcalendar Public

    WebCalendar is a PHP application used to maintain a calendar for a single user or an intranet group of users. It can also be configured as an event calendar.

    PHP 173 81

  2. scheduling-agent scheduling-agent Public

    LangGraph scheduling agent: natural language to RFC 5545 calendar events on WebCalendar via MCP, with human-in-the-loop approval and an RRULE/DST eval suite

    Python

  3. agentic-dev-team agentic-dev-team Public

    A self-hosted autonomous coding team. You describe what to build and approve ideas; a pipeline of AI agents handles planning, coding, review, testing, and security checking end-to-end.

    Python

  4. k5n-mcp-hub k5n-mcp-hub Public

    Python