ai-raccoon-new-service

Implements new injectable services, MCP tools, and schema tables in the AiRaccoon .NET codebase.

2|Updated Aug 2, 2026
One-click install
npx skills add https://github.com/Arasz/ai-raccoon --skill ai-raccoon-new-service-arasz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ai-raccoon-new-service
Source: https://github.com/Arasz/ai-raccoon/tree/main/.ai-badger/skills/learned/ai-raccoon/ai-raccoon-new-service
Command: npx skills add https://github.com/Arasz/ai-raccoon --skill ai-raccoon-new-service-arasz

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Adding a new service or MCP tool to AiRaccoon touches many moving parts—ports, adapters, DI registration, schema DDL, tool inventory tests—and doing it wrong ripples into dozens of existing fakes and test files. This Skill encodes the established patterns so new services integrate without breaking existing interfaces or the schema version ladder. ## Core Features & Use Cases - Port + Adapter Pattern: Guides creation of separate service interfaces (e.g., ISearchQualityService) instead of growing IMemoryStore, avoiding ripple into 15+ fake stores. - MCP Tool Class Pattern: Provides the full template for new tool classes with TN_* constants, ToolExecutionActivity wrappers, AccessRequirement tiers, and dual registration in CreateAppHost and CreateWebHost. - Additive DDL & Testing: Covers CREATE TABLE IF NOT EXISTS schema additions without version bumps, SQLite gotchas (nullable UNIQUE, redundant indexes), and the xunit v3 integration test pattern. - Use Case: When adding a search-quality tracking feature, follow the Skill to create the Core interface, Sqlite implementation, QualityTools class, DI registration, and integration tests without touching IMemoryStore. ## Quick Start Add a new injectable service and MCP tool to AiRaccoon following the port-adapter, DI registration, and integration test patterns in this skill.

Frequently Asked Questions about ai-raccoon-new-service

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new service to a .NET MCP server without breaking existing interfaces?

Create a separate service interface (port) in Core with a Sqlite implementation in Infrastructure, rather than adding methods to an existing store interface. The tool layer calls both services alongside each other, so existing fakes and implementations remain untouched.

How do I add a new MCP tool class in AiRaccoon?

Create a dedicated tool class with TN_* name constants, wrap each method in ToolExecutionActivity, apply AccessRequirement gating, and register it via .WithTools<T>() in both CreateAppHost and CreateWebHost. Update ToolInventoryTests and the README tool count.

Does adding a new SQLite table require a schema version bump?

No. New tables use CREATE TABLE IF NOT EXISTS in MemorySchema.Ddl, which runs on every bank open via EnsureAsync. Only ALTER TABLE or data migrations require MigrateAsync and a CurrentVersion bump.

Why does my new MCP tool work over stdio but not HTTP?

McpServerSetup has two host creation methods, CreateAppHost and CreateWebHost. The .WithTools<T>() registration must be added to both; registering in only one makes the tool available on a single transport.

What are the limitations of growing an existing store interface for observability?

Adding observability methods to a store interface ripples into every fake implementation—measured at 18 test files for IMemoryStore. Observability that does not affect retrieval results belongs in a separate service with fire-and-forget calls that never block the primary response.