Video Dept. AI MCP
An official MCP server by Video Department that allows AI agents to learn about the studio's services, plan video projects using a structured brief, draft scripts, send brand guidelines, book consultation calls with the founder, and obtain deposit links for fixed quotes.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://agents.videodepartment.org/mcpWhat its tools do
11 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (6)
Can change data (5)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to videodepartment.org ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Plan a video project and draft a script
- Send a brief for a fixed quote
- Book a free consultation call
- Learn about services and posted prices
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- video-dept-ai-public 0.2.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 11 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
11 advertised
get_studio_info — About VIDEO DEPT.
Returns what VIDEO DEPT. makes, its posted prices, typical timelines, service area, languages, examples of its work and how quotes, calls and deposits work. Use it when the user asks what the studio does or costs, or before planning a video with VIDEO DEPT.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"topic": {
"enum": [
"services",
"prices",
"timeline",
"area",
"work",
"contact"
],
"type": "string",
"description": "Optional: services, prices, timeline, area, work or contact. Leave empty for everything."
}
}
}{
"title": "About VIDEO DEPT.",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}plan_a_video — Plan a video with VIDEO DEPT.
Returns what is needed to plan a video with VIDEO DEPT.: the 10 brief questions, formats, the typical timeline (or the step-by-step process for courses, video podcasts and studio setups) and a what-to-prepare checklist. A brief with at least 4 answered questions can then be sent with send_brief.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"video_type": {
"enum": [
"event",
"interview",
"brand_film",
"product",
"social",
"course",
"video_podcast",
"podcast_studio",
"other"
],
"type": "string",
"description": "The kind of video: event, interview, brand_film, product, social, course, video_podcast, podcast_studio or other."
}
}
}{
"title": "Plan a video with VIDEO DEPT.",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}draft_a_script — Get a script outline for a video
Returns an outline for the script of a video: the parts in order, their rough timing, how many spoken words fit, the two-column format and the rules for writing it. Use it when the user wants a script draft. You write the draft with the user from the outline, and it goes to Nikita with the brief (send_brief). It sends nothing.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"video_type": {
"enum": [
"event",
"interview",
"brand_film",
"product",
"social",
"course",
"video_podcast",
"podcast_studio",
"other"
],
"type": "string",
"description": "The kind of video, the same choices as plan_a_video."
},
"length_seconds": {
"type": "integer",
"maximum": 3600,
"minimum": 5,
"description": "Optional: the planned length in seconds, if the user knows it."
}
}
}{
"title": "Get a script outline for a video",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_booking_link — Get Nikita's booking page
Returns the page where the user books a free 30-minute video call with Nikita Marushkov, the studio's founder, and the hours calls can be booked. The user picks a time on that page, or an agent that can open web pages does it for them after the user agrees to the time and contact details. The page shows times in the user's own time zone.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}{
"title": "Get Nikita's booking page",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}send_brief — Send a video brief to VIDEO DEPT.
Sends one video brief to Nikita at VIDEO DEPT. for an exact fixed quote, with the user's name and email so he can reply. It is built from the user's own answers to the plan_a_video questions and needs at least 4 of the 10 answered. Each call sends a new brief and cannot be taken back, so call it once, after the user has seen the exact brief and their contact details and agreed.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project_name",
"name",
"email",
"company"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "The user's full name."
},
"email": {
"type": "string",
"maxLength": 120,
"minLength": 5,
"description": "The user's email address, where Nikita sends the quote."
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "Optional: the user's phone number, if they want Nikita to call or text them about this brief."
},
"budget": {
"type": "string",
"maxLength": 1500,
"description": "What's the budget range?"
},
"company": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "The user's company."
},
"message": {
"type": "string",
"maxLength": 1500,
"description": "What's the one message they must remember?"
},
"outcome": {
"type": "string",
"maxLength": 1500,
"description": "What single business outcome should this video drive?"
},
"success": {
"type": "string",
"maxLength": 1500,
"description": "How will you measure success?"
},
"audience": {
"type": "string",
"maxLength": 1500,
"description": "Who exactly is watching?"
},
"deadline": {
"type": "string",
"maxLength": 1500,
"description": "What's the hard deadline, and why?"
},
"logistics": {
"type": "string",
"maxLength": 1500,
"description": "What are the shoot logistics?"
},
"placements": {
"type": "string",
"maxLength": 1500,
"description": "Where will the video live?"
},
"references": {
"type": "string",
"maxLength": 1500,
"description": "Which videos do you like?"
},
"deliverables": {
"type": "string",
"maxLength": 1500,
"description": "What exactly should be delivered?"
},
"project_name": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "A short name for the video, e.g. \"Spring launch film\"."
},
"script_draft": {
"type": "string",
"maxLength": 6000,
"description": "Optional: the script draft you wrote with the user from draft_a_script, exactly as the user approved it. Nikita uses it as a starting point."
}
}
}{
"title": "Send a video brief to VIDEO DEPT.",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}send_brand_guide — Send the company's brand guidelines
Sends Nikita a company's brand guidelines for a video: links to the brand book, logo and font files, the brand colors and fonts, logo rules and tone of voice. Use it when the user wants VIDEO DEPT. to have their brand guidelines, usually with or after a brief. Links must be web addresses the user gives, for example Google Drive, Dropbox or the company's site. For files that aren't online, give the user a private upload link (get_upload_link), or they can email them to nikita@videodepartment.org. This sends the details to Nikita and can't be taken back: show the user exactly what you'll send and ask first.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"email",
"company"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "The user's full name."
},
"tone": {
"type": "string",
"maxLength": 300,
"description": "Optional: the brand's tone of voice, in a few words."
},
"email": {
"type": "string",
"maxLength": 120,
"minLength": 5,
"description": "The user's work email, where Nikita can reply."
},
"fonts": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 4,
"description": "Optional: the brand font names, up to 4."
},
"links": {
"type": "array",
"items": {
"type": "string",
"maxLength": 500
},
"maxItems": 5,
"description": "Up to 5 web addresses (starting with https://) of the brand book, logo or font files, exactly as the user gave them."
},
"notes": {
"type": "string",
"maxLength": 1500,
"description": "Optional: anything else Nikita should know, such as colors or music to avoid."
},
"colors": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8,
"description": "Optional: the brand colors, up to 8, each as a hex code with an optional name, like Navy #0A2342."
},
"company": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "The company whose brand this is."
},
"project": {
"type": "string",
"maxLength": 80,
"description": "Optional: the brief number (like A-12), the quote number (like Q-12) or the project name this is for."
},
"logo_rules": {
"type": "string",
"maxLength": 1500,
"description": "Optional: how the logo may and may not be used, in plain words."
}
}
}{
"title": "Send the company's brand guidelines",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}get_brief_status — Check on a brief sent to Nikita
Returns where a brief sent with send_brief stands: with Nikita, replied, or a fixed quote sent, and any free call booked. Give the brief number (like A-12) and the email it was sent with, exactly as in send_brief's receipt. It shows only the status and dates, never the reply itself, which goes to that email. It changes nothing.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"brief",
"email"
],
"properties": {
"brief": {
"type": "string",
"maxLength": 20,
"minLength": 1,
"description": "The brief number from send_brief's receipt, e.g. \"A-12\"."
},
"email": {
"type": "string",
"maxLength": 120,
"minLength": 5,
"description": "The email address the brief was sent with."
}
}
}{
"title": "Check on a brief sent to Nikita",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_upload_link — Get a private link to send files
Returns a private web page where the user uploads files for Nikita at VIDEO DEPT. from their own computer or phone: footage, photos, logos, references or documents, up to 20 files and 20 GB in all. Use it when the user wants to send files that aren't online. Give the user the link; they open it and choose the files themselves. The link works for 24 hours. Only Nikita can open the files, and they are deleted from the upload storage after 30 days. Making the link sends nothing.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"email",
"company"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "The user's full name."
},
"about": {
"type": "string",
"maxLength": 80,
"description": "Optional: the brief number (like A-12), the quote number (like Q-12) or the project name these files are for."
},
"email": {
"type": "string",
"maxLength": 120,
"minLength": 5,
"description": "The user's email address, where Nikita can reply."
},
"company": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "The user's company."
}
}
}{
"title": "Get a private link to send files",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}find_call_times — Find a time for a free call with Nikita
Returns Nikita Marushkov's open times for a free 30-minute video call (Google Meet): Monday to Friday, 10 AM–6 PM Eastern (the last call starts at 5 PM), at least 4 hours ahead and up to two weeks out. Each time has an exact start to pass to book_call. Give the user's time zone to see the times in their own time zone too.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"from_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional: the first day to look at, as YYYY-MM-DD, within the next two weeks. Leave empty for the next open times."
},
"time_zone": {
"type": "string",
"maxLength": 64,
"description": "Optional: the user's time zone, e.g. America/Chicago or Europe/London."
}
}
}{
"title": "Find a time for a free call with Nikita",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}book_call — Book a free call with Nikita
Books a free 30-minute video call with Nikita Marushkov at one of the times from find_call_times. The call goes on Nikita's calendar, and Google Calendar emails the user an invite with the Google Meet link; the result also has a link to cancel. It books the call only. Call it once, after the user has seen the exact time in their own time zone and their contact details and agreed.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"name",
"email",
"company",
"about"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "The user's full name."
},
"about": {
"type": "string",
"maxLength": 500,
"description": "What the user wants to talk about, in a sentence or two, in their own words."
},
"email": {
"type": "string",
"maxLength": 120,
"minLength": 5,
"description": "The user's email address, where the invite goes."
},
"phone": {
"type": "string",
"maxLength": 40,
"description": "Optional: the user's phone number, if they want Nikita to call or text them about this call. It isn't put in the invite."
},
"start": {
"type": "string",
"maxLength": 40,
"minLength": 16,
"description": "The exact start from find_call_times, copied as is with its time zone offset, e.g. \"2026-11-04T14:00:00-05:00\"."
},
"company": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "The user's company."
},
"time_zone": {
"type": "string",
"maxLength": 64,
"description": "Optional: the user's time zone, e.g. America/Chicago, to show the time in it."
}
}
}{
"title": "Book a free call with Nikita",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}get_deposit_link — Get the deposit link for a fixed quote
For a client who already has a fixed quote from Nikita (it has a number like Q-12). Give the quote number and the email it was sent to, exactly as in Nikita's email. Returns the quote and a Stripe payment link for its 50% deposit; the balance is due when the project is finished. It doesn't pay or accept anything: the user opens the link and pays there themselves, and card details go only to Stripe. The project is booked once the payment goes through. The deposit is fully refundable until the user and Nikita reach the final agreement on a call or at a meeting, and if VIDEO DEPT. can't do the date, the user gets all of it back.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"quote",
"email"
],
"properties": {
"email": {
"type": "string",
"maxLength": 120,
"minLength": 5,
"description": "The email address the quote was sent to, exactly as in Nikita's email."
},
"quote": {
"type": "string",
"maxLength": 20,
"minLength": 1,
"description": "The quote number exactly as in Nikita's email, e.g. \"Q-12\"."
}
}
}{
"title": "Get the deposit link for a fixed quote",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 381 ms
- 95th percentile latency
- 381 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 381 ms · metadata changed · 11 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http video-dept-ai-mcp https://agents.videodepartment.org/mcpCodex
codex mcp add video-dept-ai-mcp --url https://agents.videodepartment.org/mcpCursor
{
"mcpServers": {
"video-dept-ai-mcp": {
"url": "https://agents.videodepartment.org/mcp"
}
}
}Cline
{
"mcpServers": {
"video-dept-ai-mcp": {
"type": "streamableHttp",
"url": "https://agents.videodepartment.org/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"video-dept-ai-mcp": {
"type": "http",
"url": "https://agents.videodepartment.org/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http video-dept-ai-mcp https://agents.videodepartment.org/mcpClaude Desktop
https://agents.videodepartment.org/mcpWindsurf
{
"mcpServers": {
"video-dept-ai-mcp": {
"serverUrl": "https://agents.videodepartment.org/mcp"
}
}
}Let your agent find its tools
Find servers like Video Dept. AI MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Video Dept. AI MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.