CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
seosa avatar

Seosa

ink.seosa/seosa
27 toolsHTTPregistry active
Summary

If you're building web novel infrastructure with Claude or ChatGPT and need to manage serialized fiction at scale, this gives you structured endpoints for series setup, character databases, episode generation, and quality evaluation workflows. It's Korean-first but the MCP interface is language-agnostic. The remote transport means you don't run anything locally, you just point your client at app.seosa.ink/api/mcp and get access to worldbuilding tools, outline management, and multi-pass editorial feedback loops. Useful if you're prototyping narrative tools or need to maintain consistency across dozens of chapters without rebuilding context each time. The samples show it handles genre conventions (romance, fantasy, wuxia) with attention to pacing and character continuity.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Open Steps
Open Steps
Free an open-source skills that make AI coding agents easier to understand, verify, and control.
Download for free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Open Steps
Open Steps
Free an open-source skills that make AI coding agents easier to understand, verify, and control.
Download for free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →

Tools

Public tool metadata for what this MCP can expose to an agent.

27 tools
seosa_list_seriesList the authenticated user's series (most recent first). Returns id, title, genre, language, platform, and creation time.2 params

List the authenticated user's series (most recent first). Returns id, title, genre, language, platform, and creation time.

Parameters* required
limitinteger
Page size (default 50, max 100).
offsetinteger
Offset for pagination (default 0).
seosa_get_seriesGet one series by ID (must be owned by the authenticated user).1 params

Get one series by ID (must be owned by the authenticated user).

Parameters* required
idstring
Series ID.
seosa_create_seriesCreate a new series for the authenticated user. Free of credit charge. Returns the created series object including its assigned id.9 params

Create a new series for the authenticated user. Free of credit charge. Returns the created series object including its assigned id.

Parameters* required
genrestring
languagestring
platformstring
synopsisstring
system_rulesstring
titlestring
total_chaptersinteger
total_partsinteger
world_summarystring
seosa_update_seriesPartial-patch update for an existing series. Provide at least one field beyond `id`. Free of credit charge. Fields: title / genre / language / platform / synopsis / world_summary / system_rules / total_parts / total_chapters / visibility. Changing language/platform/genre also...11 params

Partial-patch update for an existing series. Provide at least one field beyond `id`. Free of credit charge. Fields: title / genre / language / platform / synopsis / world_summary / system_rules / total_parts / total_chapters / visibility. Changing language/platform/genre also...

Parameters* required
genrestring
idstring
Series ID to update.
languagestring
platformstring
synopsisstring
system_rulesstring
titlestring
total_chaptersinteger
total_partsinteger
visibilitystring
one of private · public
world_summarystring
seosa_list_episodesList episodes of a given series in ascending order. Content body is omitted; use seosa_get_episode for full text.3 params

List episodes of a given series in ascending order. Content body is omitted; use seosa_get_episode for full text.

Parameters* required
limitinteger
Page size (default 50, max 100).
offsetinteger
Offset for pagination (default 0).
series_idstring
Series ID.
seosa_get_episodeGet one episode (with full content) by series ID + episode number. Prefer `episode_number`; the legacy `number` alias remains for backward compatibility.3 params

Get one episode (with full content) by series ID + episode number. Prefer `episode_number`; the legacy `number` alias remains for backward compatibility.

Parameters* required
episode_numberinteger
Episode number (1-based). Preferred field name.
numberinteger
Legacy alias for episode_number. Kept for backward compatibility.
series_idstring
Series ID.
seosa_get_episode_statusLightweight status check for an episode: whether the body has been saved, the word count, the quality score (if evaluated), and whether an outline exists. Returns state ∈ { absent, body_ready, evaluated } plus `has_outline: boolean`. Free, read-only. Decision matrix for `state...2 params

Lightweight status check for an episode: whether the body has been saved, the word count, the quality score (if evaluated), and whether an outline exists. Returns state ∈ { absent, body_ready, evaluated } plus `has_outline: boolean`. Free, read-only. Decision matrix for `state...

Parameters* required
episode_numberinteger
Episode number (1-based).
series_idstring
Series ID.
seosa_wait_for_episodeServer-side long-poll that blocks until an episode reaches the target state. Use this AFTER calling seosa_generate_episode (which returns `status: "dispatched"` immediately while the body is written in the background) or seosa_evaluate_episode. Free, read-only. Behavior: - `un...4 params

Server-side long-poll that blocks until an episode reaches the target state. Use this AFTER calling seosa_generate_episode (which returns `status: "dispatched"` immediately while the body is written in the background) or seosa_evaluate_episode. Free, read-only. Behavior: - `un...

Parameters* required
episode_numberinteger
Episode number (1-based).
series_idstring
Series ID.
timeout_secondsinteger
Max seconds to wait in this single call. Default 180, max 180. Sized to cover the average body generation (~1m20s) in one call; if a client's HTTP idle timeout is shorter, the surface can simply re...
untilstring
Target state to wait for. Default 'body_ready'. Use 'evaluated' after seosa_evaluate_episode to wait for quality_score.one of body_ready · evaluated
seosa_update_episodeUpdate episode content, quality score, or publish state. Pass `content` to overwrite the body (the previous body is auto-snapshotted to `episode_version` with source 'mcp_edit' — rollback via `seosa_rollback_episode`). Pass `quality_score` (0-100) and/or `is_public` to update...5 params

Update episode content, quality score, or publish state. Pass `content` to overwrite the body (the previous body is auto-snapshotted to `episode_version` with source 'mcp_edit' — rollback via `seosa_rollback_episode`). Pass `quality_score` (0-100) and/or `is_public` to update...

Parameters* required
contentstring
New episode body. Replaces existing content fully. The previous body is preserved as a version snapshot.
episode_numberinteger
Episode number (1-based).
is_publicboolean
Visibility flag. true → episode visible to readers; first true also sets published_at.
quality_scoreinteger
Quality score (0-100). Skips version snapshot.
series_idstring
Series ID.
seosa_list_episode_versionsList all versions (revision history) of an episode in descending version order. Each item includes `version_num`, `word_count`, `source` ('edit' / 'mcp_edit' / 'api_edit' / 'generation' / 'generation_<provider>' / 'improve' / 'rollback'), and `created_at`. Body content is omit...2 params

List all versions (revision history) of an episode in descending version order. Each item includes `version_num`, `word_count`, `source` ('edit' / 'mcp_edit' / 'api_edit' / 'generation' / 'generation_<provider>' / 'improve' / 'rollback'), and `created_at`. Body content is omit...

Parameters* required
episode_numberinteger
Episode number (1-based).
series_idstring
Series ID.
seosa_rollback_episodeRestore an episode body to a previous version. The current body is preserved as a new snapshot with source 'rollback' before the restore — so a rollback is itself reversible by another rollback. Use `seosa_list_episode_versions` first to find the target `version_num`. Free.3 params

Restore an episode body to a previous version. The current body is preserved as a new snapshot with source 'rollback' before the restore — so a rollback is itself reversible by another rollback. Use `seosa_list_episode_versions` first to find the target `version_num`. Free.

Parameters* required
episode_numberinteger
Episode number (1-based).
series_idstring
Series ID.
version_numinteger
Target version number to restore. Obtain from `seosa_list_episode_versions`.
seosa_check_balanceReturn the authenticated user's credit balance, broken down by bucket, plus the current subscription plan.

Return the authenticated user's credit balance, broken down by bucket, plus the current subscription plan.

No parameter schema in public metadata yet.

seosa_run_wizardGenerate and persist world, characters, relationships, and bible components for a series in one call. Costs up to 8 credits (2 per step, charged only for steps that actually run). Skips steps whose data already exists; pass force:true to re-run all targeted steps. Pass `steps`...3 params

Generate and persist world, characters, relationships, and bible components for a series in one call. Costs up to 8 credits (2 per step, charged only for steps that actually run). Skips steps whose data already exists; pass force:true to re-run all targeted steps. Pass `steps`...

Parameters* required
forceboolean
Force re-run the targeted steps even if data exists. Default false.
series_idstring
Series ID.
stepsarray
Subset of steps to run. Omit to run all 4 (default). Non-listed steps are skipped with reason 'not_requested'. Typical uses: ['characters'] + force:true to re-roll the cast, or ['bible'] to fill in...
seosa_get_charactersReturn the canonical character list (series.characters jsonb) plus the character_state mirror (character_name / class_name / level / last_updated_episode). Free, read-only.1 params

Return the canonical character list (series.characters jsonb) plus the character_state mirror (character_name / class_name / level / last_updated_episode). Free, read-only.

Parameters* required
series_idstring
Series ID.
seosa_get_bibleReturn bible_component rows (world / system_rules / locations / terminology / themes / etc) for a series. Pass component_name to fetch a single component. Free, read-only.2 params

Return bible_component rows (world / system_rules / locations / terminology / themes / etc) for a series. Pass component_name to fetch a single component. Free, read-only.

Parameters* required
component_namestring
If set, return only the single component with this name.
series_idstring
Series ID.
seosa_get_relationshipsReturn the current relationship graph (narrative_state.relationships) plus the last_updated_episode marker. Set include_snapshots=true to also return per-episode relationship_snapshot rows (newest first). Free, read-only.3 params

Return the current relationship graph (narrative_state.relationships) plus the last_updated_episode marker. Set include_snapshots=true to also return per-episode relationship_snapshot rows (newest first). Free, read-only.

Parameters* required
include_snapshotsboolean
Include per-episode snapshots. Default false.
max_snapshotsinteger
Max snapshots to return (default 20). Honored only when include_snapshots=true.
series_idstring
Series ID.
seosa_update_bible_componentUpsert one bible_component (world / system_rules / locations / terminology / timeline / foreshadowing / themes / voice_profiles / scene_inventory) for a series. If no row exists for the given component_name it is created; if one exists it is fully replaced (no partial merge —...5 params

Upsert one bible_component (world / system_rules / locations / terminology / timeline / foreshadowing / themes / voice_profiles / scene_inventory) for a series. If no row exists for the given component_name it is created; if one exists it is fully replaced (no partial merge —...

Parameters* required
change_reasonstring
Optional reason recorded in history (default: manual_edit).
component_namestring
Bible component name (e.g. 'locations', 'terminology').
dataobject
Full replacement data object for this component.
episode_contextinteger
Optional episode number the edit relates to.
series_idstring
Series ID.
seosa_update_relationshipsUpsert the canonical character relationship graph (narrative_state.relationships) for a series. Replaces the entire graph — for partial edits, read with seosa_get_relationships first, modify, then write back. Free, no credit charge. Persists in the same shape as seosa_run_wiza...3 params

Upsert the canonical character relationship graph (narrative_state.relationships) for a series. Replaces the entire graph — for partial edits, read with seosa_get_relationships first, modify, then write back. Free, no credit charge. Persists in the same shape as seosa_run_wiza...

Parameters* required
episode_contextinteger
Episode number this graph applies to (sets last_updated_episode). Default 0 — matches the wizard's 'initial setup' marker.
relationshipsarray
Full new relationship graph. Pass an empty array to clear the graph.
series_idstring
Series ID.
seosa_create_charactersManually create one or more canonical characters for a series, WITHOUT running seosa_run_wizard. Idempotent: characters whose name already exists in series.characters are skipped. Free, no credit charge. Persists to both `series.characters` (jsonb cast list) and the `character...2 params

Manually create one or more canonical characters for a series, WITHOUT running seosa_run_wizard. Idempotent: characters whose name already exists in series.characters are skipped. Free, no credit charge. Persists to both `series.characters` (jsonb cast list) and the `character...

Parameters* required
charactersarray
Characters to create. Existing names (already in series.characters) are skipped silently.
series_idstring
Series ID.
seosa_update_characterPartially update a character_state row identified by canonical character_name. Only fields explicitly passed (class_name / level / stats / skills / fragments) are written; the rest are preserved. 404 if no character_state row exists with that name — create it via seosa_create_...7 params

Partially update a character_state row identified by canonical character_name. Only fields explicitly passed (class_name / level / stats / skills / fragments) are written; the rest are preserved. 404 if no character_state row exists with that name — create it via seosa_create_...

Parameters* required
character_namestring
Canonical character_name as stored (e.g. '소용(蘇龍)'). Use seosa_get_characters to list available names.
class_namestring
New role / title / class. Omit to keep existing value.
fragmentsarray
New fragments array. Omit to keep existing.
levelinteger
New skill / power level. Omit to keep existing.
series_idstring
Series ID.
skillsarray
New skills array. Omit to keep existing.
statsobject
New stats object. Omit to keep existing.
seosa_generate_outlineGenerate a draft outline for the next episode of the given series. Costs 2 credits. Returns title, emotional_tone, hook, key_events, character_focus plus a `conflicts` array (bible/narrative consistency warnings). May early-terminate with character proposals if the series need...6 params

Generate a draft outline for the next episode of the given series. Costs 2 credits. Returns title, emotional_tone, hook, key_events, character_focus plus a `conflicts` array (bible/narrative consistency warnings). May early-terminate with character proposals if the series need...

Parameters* required
accepted_charactersarray
Characters from a previous call's casting proposal that you accept. They are persisted to series.characters + character_state before the outline is generated, so subsequent calls reuse the same can...
auto_accept_proposedboolean
If true and the first generation cycle returns proposed_characters, automatically echo the proposal back as accepted_characters + skip_casting:true and run the outline cycle a second time in the sa...
episode_numberinteger
Episode number to outline (1-based).
instructionstring
Optional natural-language hint for the outline.
series_idstring
Series ID.
skip_castingboolean
Skip the casting proposal gate (advanced). Default false — recommended only when you have already accepted/rejected casting in a prior call.
seosa_update_outlinePartial-patch update for an existing episode outline. Free (0 credits). Use this AFTER seeing `conflicts` from seosa_generate_outline to fix the exact field at issue (e.g. tweak one `key_events` line) without paying for a new LLM call. Provide at least one of: title, emotional...8 params

Partial-patch update for an existing episode outline. Free (0 credits). Use this AFTER seeing `conflicts` from seosa_generate_outline to fix the exact field at issue (e.g. tweak one `key_events` line) without paying for a new LLM call. Provide at least one of: title, emotional...

Parameters* required
character_focusarray
emotional_tonestring
episode_numberinteger
Episode number (1-based). Outline must already exist.
hookstring
key_eventsarray
recheck_conflictsboolean
Re-run bible/narrative consistency detection after patching. Default false.
series_idstring
Series ID.
titlestring
seosa_regenerate_outlineRe-roll an existing episode outline by feeding the current outline plus fix hints (typically the `conflicts` from a previous generate_outline call) back into the LLM. Costs 2 credits. Skips the casting gate (existing series characters are reused as-is). Overwrites the existing...4 params

Re-roll an existing episode outline by feeding the current outline plus fix hints (typically the `conflicts` from a previous generate_outline call) back into the LLM. Costs 2 credits. Skips the casting gate (existing series characters are reused as-is). Overwrites the existing...

Parameters* required
episode_numberinteger
Episode number (1-based). Outline must already exist.
fix_conflictsarray
Conflicts from a previous generate_outline call. Each `message` is embedded as a explicit avoidance hint in the LLM prompt.
instructionstring
Optional extra natural-language hint.
series_idstring
Series ID.
seosa_get_outlineReturn a single episode_outline row for a given series + episode number (title / emotional_tone / hook / key_events / character_focus). 404 if the outline has not been generated yet. Free, read-only.2 params

Return a single episode_outline row for a given series + episode number (title / emotional_tone / hook / key_events / character_focus). 404 if the outline has not been generated yet. Free, read-only.

Parameters* required
episode_numberinteger
Episode number (1-based).
series_idstring
Series ID.
seosa_generate_episodeDispatch full-body generation for an episode. Costs 30 credits. Returns IMMEDIATELY with `status: "dispatched"` — there is NO transport timeout to handle. The actual writing runs in the background (typically 1m20s, up to 3 minutes). **Always follow this with `seosa_wait_for_ep...3 params

Dispatch full-body generation for an episode. Costs 30 credits. Returns IMMEDIATELY with `status: "dispatched"` — there is NO transport timeout to handle. The actual writing runs in the background (typically 1m20s, up to 3 minutes). **Always follow this with `seosa_wait_for_ep...

Parameters* required
episode_numberinteger
Episode number to generate (1-based). Outline required.
polishboolean
Run an additional polish pass after the draft. Improves quality but doubles AI cost (counted within the 30cr hold).
series_idstring
Series ID.
seosa_rewrite_episode_selectionGenerate 3 alternative rewrites for a selected passage of an episode body. **Does NOT modify the episode** — returns `alternatives` array; the caller must pick one and apply it via `seosa_update_episode` with the new full content. Provide either a `preset` (vivid/concise/tensi...6 params

Generate 3 alternative rewrites for a selected passage of an episode body. **Does NOT modify the episode** — returns `alternatives` array; the caller must pick one and apply it via `seosa_update_episode` with the new full content. Provide either a `preset` (vivid/concise/tensi...

Parameters* required
contextstring
Surrounding text (paragraphs before/after the selection) for tone continuity.
episode_numberinteger
Episode number (1-based).
instructionstring
Free-form rewrite direction. Ignored if `preset` is also set.
presetstring
Curated rewrite style. Overrides `instruction` if both provided.one of vivid · concise · tension · emotional · dialogue · expand
selected_textstring
The exact passage to rewrite. Must be a contiguous substring of the episode body.
series_idstring
Series ID.
seosa_evaluate_episodeEvaluate the quality of an existing episode from 3 perspectives: writer/reader/editor. Costs 5 credits. Returns IMMEDIATELY with `status: "dispatched"` — evaluation runs in the background (typically ~30s). Follow with `seosa_wait_for_episode` using `until: "evaluated"` to awai...2 params

Evaluate the quality of an existing episode from 3 perspectives: writer/reader/editor. Costs 5 credits. Returns IMMEDIATELY with `status: "dispatched"` — evaluation runs in the background (typically ~30s). Follow with `seosa_wait_for_episode` using `until: "evaluated"` to awai...

Parameters* required
episode_numberinteger
Episode number to evaluate (1-based). Episode must exist with content.
series_idstring
Series ID.
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
ego lite browserego lite browser
ego lite browser
Fastest browser for AI agents to run web automation tasks, always free.
Download Free life-time →
CodeHealth MCP ServerCodeHealth MCP Server
CodeHealth MCP Server
Protect your code quality, stop the AI slop.
Try For Free →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Open Steps
Open Steps
Free an open-source skills that make AI coding agents easier to understand, verify, and control.
Download for free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Agent, connect blockchain
Agent, connect blockchain
Connect your Claude agent to live crypto prices and trading routes via 1inch
Get the MCP →
Granola, the best AI meeting recorder
Granola, the best AI meeting recorder
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
Registryactive
TransportHTTP
UpdatedMay 30, 2026
Open website