New Your team’s decisions, in one playbook every coding agent works from. Never answer your agent twice

copy_between_sites

Copy a course's content from one of this server's sites to another (list_sites): some activities (activityIds), some sections with everything in them (sectionIds), or, with neither, the whole course. Through Moodle's backup on the first site and its restore on the second, never with people's data...

SERVERMoodle SOURCE@falkenslab/moodle-mcp
Medium RISK CLASS
Category Write
Parameters 93 required
Recommended Rate-limitedsee the rule below
Registry record Grade F, identity unverified Pull the record →

This record as markdown: /tools/falkenslab-moodle-mcp/copy-between-sites.md

What copy_between_sites does on Moodle

AI agents use copy_between_sites to create or update resources in Moodle, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Moodle environment.

ParameterTypeRequiredDescription
toSite string Yes A site's name, as list_sites gives it
courseId integer Yes The course to copy from, on fromSite
fromSite string Yes A site's name, as list_sites gives it
sectionIds array — Only these sections, by id, each with everything in it
toCourseId integer — An existing course on toSite to copy into
activityIds array — Only these activities and resources, by course module id
toSectionId integer — Into toCourseId: every copied activity at the end of this section
toCategoryId integer — A whole course only: a new course in this category on toSite, instead of toCourseId
toAfterSectionId integer — Into toCourseId: copied sections as new sections after this one

Parameters from the server's own tool schema.

Why copy_between_sites is rated Medium

An AI agent can call copy_between_sites faster than any human can review: one bad instruction and it creates or modifies resources in Moodle by the hundred, each call as confident as the last.

Risk signalsBulk/mass operation — affects multiple targets

Questions about copy_between_sites

What does the copy_between_sites tool do? +

Copy a course's content from one of this server's sites to another (list_sites): some activities (activityIds), some sections with everything in them (sectionIds), or, with neither, the whole course. Through Moodle's backup on the first site and its restore on the second, never with people's data and naming no one; the file stays on this computer, never passes through you, and is deleted after. It goes into an existing course (toCourseId): at the end of one of its sections (toSectionId), or, for sections, as new ones after toAfterSectionId; a whole course can go into a new course in a category instead (toCategoryId). Returns what was created, and warnings for what was left broken (restrictions or links to what wasn't copied) for the person to fix. Each site needs a session (use_site, then login). The active site stays the same. Within one site, use import_activities or copy_course. It can take minutes. Changes the target site: confirm with the person first. It is categorised as a Write tool in the Moodle MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.

What parameters does copy_between_sites accept? +

copy_between_sites accepts 9 parameters: toSite, courseId, fromSite, sectionIds, toCourseId, activityIds, toSectionId, toCategoryId, toAfterSectionId. Required: toSite, courseId, fromSite. The full parameter table on this page comes from the server's own tool schema.

How do I enforce a policy on copy_between_sites? +

Register the Moodle MCP server in PolicyLayer and add a rule for copy_between_sites: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Moodle. Nothing to install.

What risk level is copy_between_sites? +

copy_between_sites is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.

Can I rate-limit copy_between_sites? +

Yes. Add a rate_limit block to the copy_between_sites rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block copy_between_sites completely? +

Set action: deny in the PolicyLayer policy for copy_between_sites. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides copy_between_sites? +

copy_between_sites is provided by the Moodle MCP server (@falkenslab/moodle-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

More on Moodle, and thousands of servers like it.

Across the catalogue

// THE MCP REGISTRY

PolicyLayer tracks 44,603 MCP servers and 515,000+ tools.

Every server has a live record: who publishes it, whether it answers without auth, its risk grade, every tool classified, the recommended policy. This page is one line of Moodle's. Pull the full record:

Teams ship this data inside their own products. See what a licence covers →

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.