/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { OneRosterCore } from "../core.js";
import { createRegisterPrompt } from "./prompts.js";
import { createRegisterResource, createRegisterResourceTemplate, } from "./resources.js";
import { createRegisterTool } from "./tools.js";
import { tool$academicSessionsCreate } from "./tools/academicSessionsCreate.js";
import { tool$academicSessionsDelete } from "./tools/academicSessionsDelete.js";
import { tool$academicSessionsGet } from "./tools/academicSessionsGet.js";
import { tool$academicSessionsGetAll } from "./tools/academicSessionsGetAll.js";
import { tool$academicSessionsUpdate } from "./tools/academicSessionsUpdate.js";
import { tool$assessmentLineItemsCreate } from "./tools/assessmentLineItemsCreate.js";
import { tool$assessmentLineItemsDelete } from "./tools/assessmentLineItemsDelete.js";
import { tool$assessmentLineItemsGet } from "./tools/assessmentLineItemsGet.js";
import { tool$assessmentLineItemsGetAll } from "./tools/assessmentLineItemsGetAll.js";
import { tool$assessmentLineItemsUpdate } from "./tools/assessmentLineItemsUpdate.js";
import { tool$assessmentResultsCreate } from "./tools/assessmentResultsCreate.js";
import { tool$assessmentResultsDelete } from "./tools/assessmentResultsDelete.js";
import { tool$assessmentResultsGet } from "./tools/assessmentResultsGet.js";
import { tool$assessmentResultsGetAll } from "./tools/assessmentResultsGetAll.js";
import { tool$assessmentResultsUpdate } from "./tools/assessmentResultsUpdate.js";
import { tool$categoriesCreate } from "./tools/categoriesCreate.js";
import { tool$categoriesDelete } from "./tools/categoriesDelete.js";
import { tool$categoriesGet } from "./tools/categoriesGet.js";
import { tool$categoriesGetAll } from "./tools/categoriesGetAll.js";
import { tool$categoriesUpdate } from "./tools/categoriesUpdate.js";
import { tool$classesAddStudent } from "./tools/classesAddStudent.js";
import { tool$classesAddTeacher } from "./tools/classesAddTeacher.js";
import { tool$classesCreate } from "./tools/classesCreate.js";
import { tool$classesCreateResults } from "./tools/classesCreateResults.js";
import { tool$classesDelete } from "./tools/classesDelete.js";
import { tool$classesGet } from "./tools/classesGet.js";
import { tool$classesGetAll } from "./tools/classesGetAll.js";
import { tool$classesGetCategories } from "./tools/classesGetCategories.js";
import { tool$classesGetScoreScales } from "./tools/classesGetScoreScales.js";
import { tool$classesGetStudentResults } from "./tools/classesGetStudentResults.js";
import { tool$classesGetStudents } from "./tools/classesGetStudents.js";
import { tool$classesGetTeachers } from "./tools/classesGetTeachers.js";
import { tool$classesListResources } from "./tools/classesListResources.js";
import { tool$classesManagementGetLineItemsForClass } from "./tools/classesManagementGetLineItemsForClass.js";
import { tool$classesResultsGet } from "./tools/classesResultsGet.js";
import { tool$classesResultsGetForLineItem } from "./tools/classesResultsGetForLineItem.js";
import { tool$classesUpdate } from "./tools/classesUpdate.js";
import { tool$classResourcesDelete } from "./tools/classResourcesDelete.js";
import { tool$classTeachersGetAll } from "./tools/classTeachersGetAll.js";
import { tool$componentResourcesGetAll } from "./tools/componentResourcesGetAll.js";
import { tool$courseClassesGetAll } from "./tools/courseClassesGetAll.js";
import { tool$courseComponentsDelete } from "./tools/courseComponentsDelete.js";
import { tool$courseComponentsGetAll } from "./tools/courseComponentsGetAll.js";
import { tool$courseResourcesDelete } from "./tools/courseResourcesDelete.js";
import { tool$coursesAssignResource } from "./tools/coursesAssignResource.js";
import { tool$coursesCreate } from "./tools/coursesCreate.js";
import { tool$coursesCreateComponent } from "./tools/coursesCreateComponent.js";
import { tool$coursesCreateComponentResource } from "./tools/coursesCreateComponentResource.js";
import { tool$coursesDelete } from "./tools/coursesDelete.js";
import { tool$coursesDeleteComponentResource } from "./tools/coursesDeleteComponentResource.js";
import { tool$coursesGet } from "./tools/coursesGet.js";
import { tool$coursesGetAll } from "./tools/coursesGetAll.js";
import { tool$coursesGetComponent } from "./tools/coursesGetComponent.js";
import { tool$coursesGetComponentResource } from "./tools/coursesGetComponentResource.js";
import { tool$coursesGetResources } from "./tools/coursesGetResources.js";
import { tool$coursesUpdate } from "./tools/coursesUpdate.js";
import { tool$coursesUpdateComponent } from "./tools/coursesUpdateComponent.js";
import { tool$coursesUpdateComponentResource } from "./tools/coursesUpdateComponentResource.js";
import { tool$demographicsCreate } from "./tools/demographicsCreate.js";
import { tool$demographicsDelete } from "./tools/demographicsDelete.js";
import { tool$demographicsGet } from "./tools/demographicsGet.js";
import { tool$demographicsGetAll } from "./tools/demographicsGetAll.js";
import { tool$demographicsUpdate } from "./tools/demographicsUpdate.js";
import { tool$enrollmentsCreate } from "./tools/enrollmentsCreate.js";
import { tool$enrollmentsDelete } from "./tools/enrollmentsDelete.js";
import { tool$enrollmentsGet } from "./tools/enrollmentsGet.js";
import { tool$enrollmentsGetAll } from "./tools/enrollmentsGetAll.js";
import { tool$enrollmentsGetForClass } from "./tools/enrollmentsGetForClass.js";
import { tool$enrollmentsUpdate } from "./tools/enrollmentsUpdate.js";
import { tool$gradingPeriodsCreate } from "./tools/gradingPeriodsCreate.js";
import { tool$gradingPeriodsCreateForTerm } from "./tools/gradingPeriodsCreateForTerm.js";
import { tool$gradingPeriodsDelete } from "./tools/gradingPeriodsDelete.js";
import { tool$gradingPeriodsGet } from "./tools/gradingPeriodsGet.js";
import { tool$gradingPeriodsGetAll } from "./tools/gradingPeriodsGetAll.js";
import { tool$gradingPeriodsUpdate } from "./tools/gradingPeriodsUpdate.js";
import { tool$lineItemsCreate } from "./tools/lineItemsCreate.js";
import { tool$lineItemsDelete } from "./tools/lineItemsDelete.js";
import { tool$lineItemsGet } from "./tools/lineItemsGet.js";
import { tool$lineItemsList } from "./tools/lineItemsList.js";
import { tool$lineItemsUpdate } from "./tools/lineItemsUpdate.js";
import { tool$organizationsCreate } from "./tools/organizationsCreate.js";
import { tool$organizationsDelete } from "./tools/organizationsDelete.js";
import { tool$organizationsGet } from "./tools/organizationsGet.js";
import { tool$organizationsGetAll } from "./tools/organizationsGetAll.js";
import { tool$organizationsUpdate } from "./tools/organizationsUpdate.js";
import { tool$resourcesClassesAssign } from "./tools/resourcesClassesAssign.js";
import { tool$resourcesCreate } from "./tools/resourcesCreate.js";
import { tool$resourcesDelete } from "./tools/resourcesDelete.js";
import { tool$resourcesGet } from "./tools/resourcesGet.js";
import { tool$resourcesGetAll } from "./tools/resourcesGetAll.js";
import { tool$resourcesUpdate } from "./tools/resourcesUpdate.js";
import { tool$resultsCreate } from "./tools/resultsCreate.js";
import { tool$resultsCreateForLineItem } from "./tools/resultsCreateForLineItem.js";
import { tool$resultsDelete } from "./tools/resultsDelete.js";
import { tool$resultsGet } from "./tools/resultsGet.js";
import { tool$resultsGetAll } from "./tools/resultsGetAll.js";
import { tool$resultsUpdate } from "./tools/resultsUpdate.js";
import { tool$schoolLineItemsGet } from "./tools/schoolLineItemsGet.js";
import { tool$schoolsCoursesGetAll } from "./tools/schoolsCoursesGetAll.js";
import { tool$schoolsCreate } from "./tools/schoolsCreate.js";
import { tool$schoolsDelete } from "./tools/schoolsDelete.js";
import { tool$schoolsGet } from "./tools/schoolsGet.js";
import { tool$schoolsGetAll } from "./tools/schoolsGetAll.js";
import { tool$schoolsGetClasses } from "./tools/schoolsGetClasses.js";
import { tool$schoolsGetEnrollments } from "./tools/schoolsGetEnrollments.js";
import { tool$schoolsGetStudents } from "./tools/schoolsGetStudents.js";
import { tool$schoolsGetTeachers } from "./tools/schoolsGetTeachers.js";
import { tool$schoolsGetTerms } from "./tools/schoolsGetTerms.js";
import { tool$schoolsLineItemsCreate } from "./tools/schoolsLineItemsCreate.js";
import { tool$schoolsScoreScalesGet } from "./tools/schoolsScoreScalesGet.js";
import { tool$schoolsUpdate } from "./tools/schoolsUpdate.js";
import { tool$scoreScalesCreate } from "./tools/scoreScalesCreate.js";
import { tool$scoreScalesDelete } from "./tools/scoreScalesDelete.js";
import { tool$scoreScalesGet } from "./tools/scoreScalesGet.js";
import { tool$scoreScalesList } from "./tools/scoreScalesList.js";
import { tool$scoreScalesUpdate } from "./tools/scoreScalesUpdate.js";
import { tool$studentsClassesGet } from "./tools/studentsClassesGet.js";
import { tool$studentsGet } from "./tools/studentsGet.js";
import { tool$studentsGetAll } from "./tools/studentsGetAll.js";
import { tool$studentsGetForClass } from "./tools/studentsGetForClass.js";
import { tool$teachersGet } from "./tools/teachersGet.js";
import { tool$teachersGetAll } from "./tools/teachersGetAll.js";
import { tool$teachersGetClasses } from "./tools/teachersGetClasses.js";
import { tool$termsGet } from "./tools/termsGet.js";
import { tool$termsGetClasses } from "./tools/termsGetClasses.js";
import { tool$termsGetGradingPeriods } from "./tools/termsGetGradingPeriods.js";
import { tool$termsList } from "./tools/termsList.js";
import { tool$userResourcesRemove } from "./tools/userResourcesRemove.js";
import { tool$usersAssignResource } from "./tools/usersAssignResource.js";
import { tool$usersCreate } from "./tools/usersCreate.js";
import { tool$usersDelete } from "./tools/usersDelete.js";
import { tool$usersGet } from "./tools/usersGet.js";
import { tool$usersGetAll } from "./tools/usersGetAll.js";
import { tool$usersGetClasses } from "./tools/usersGetClasses.js";
import { tool$usersGetResources } from "./tools/usersGetResources.js";
import { tool$usersUpdate } from "./tools/usersUpdate.js";
export function createMCPServer(deps) {
    const server = new McpServer({
        name: "OneRoster",
        version: "0.5.0",
    });
    const client = new OneRosterCore({
        security: deps.security,
        serverURL: deps.serverURL,
        serverIdx: deps.serverIdx,
    });
    const scopes = new Set(deps.scopes);
    const allowedTools = deps.allowedTools && new Set(deps.allowedTools);
    const tool = createRegisterTool(deps.logger, server, client, scopes, allowedTools);
    const resource = createRegisterResource(deps.logger, server, client, scopes);
    const resourceTemplate = createRegisterResourceTemplate(deps.logger, server, client, scopes);
    const prompt = createRegisterPrompt(deps.logger, server, client, scopes);
    const register = { tool, resource, resourceTemplate, prompt };
    void register; // suppress unused warnings
    tool(tool$scoreScalesList);
    tool(tool$scoreScalesCreate);
    tool(tool$scoreScalesGet);
    tool(tool$scoreScalesUpdate);
    tool(tool$scoreScalesDelete);
    tool(tool$schoolsScoreScalesGet);
    tool(tool$schoolsGetAll);
    tool(tool$schoolsCreate);
    tool(tool$schoolsGet);
    tool(tool$schoolsUpdate);
    tool(tool$schoolsDelete);
    tool(tool$schoolsGetClasses);
    tool(tool$schoolsGetTerms);
    tool(tool$schoolsGetTeachers);
    tool(tool$schoolsGetStudents);
    tool(tool$schoolsGetEnrollments);
    tool(tool$resultsGetAll);
    tool(tool$resultsCreate);
    tool(tool$resultsGet);
    tool(tool$resultsUpdate);
    tool(tool$resultsDelete);
    tool(tool$resultsCreateForLineItem);
    tool(tool$lineItemsList);
    tool(tool$lineItemsCreate);
    tool(tool$lineItemsGet);
    tool(tool$lineItemsUpdate);
    tool(tool$lineItemsDelete);
    tool(tool$schoolLineItemsGet);
    tool(tool$classesCreateResults);
    tool(tool$classesGetStudentResults);
    tool(tool$classesGetCategories);
    tool(tool$classesGetScoreScales);
    tool(tool$classesGetAll);
    tool(tool$classesCreate);
    tool(tool$classesGet);
    tool(tool$classesUpdate);
    tool(tool$classesDelete);
    tool(tool$classesListResources);
    tool(tool$classesAddTeacher);
    tool(tool$classesGetTeachers);
    tool(tool$classesGetStudents);
    tool(tool$classesAddStudent);
    tool(tool$classesManagementGetLineItemsForClass);
    tool(tool$categoriesGetAll);
    tool(tool$categoriesCreate);
    tool(tool$categoriesGet);
    tool(tool$categoriesUpdate);
    tool(tool$categoriesDelete);
    tool(tool$assessmentResultsGetAll);
    tool(tool$assessmentResultsCreate);
    tool(tool$assessmentResultsGet);
    tool(tool$assessmentResultsUpdate);
    tool(tool$assessmentResultsDelete);
    tool(tool$assessmentLineItemsGetAll);
    tool(tool$assessmentLineItemsCreate);
    tool(tool$assessmentLineItemsGet);
    tool(tool$assessmentLineItemsUpdate);
    tool(tool$assessmentLineItemsDelete);
    tool(tool$coursesGetResources);
    tool(tool$coursesAssignResource);
    tool(tool$coursesGetAll);
    tool(tool$coursesCreate);
    tool(tool$coursesGet);
    tool(tool$coursesUpdate);
    tool(tool$coursesDelete);
    tool(tool$coursesCreateComponentResource);
    tool(tool$coursesGetComponentResource);
    tool(tool$coursesUpdateComponentResource);
    tool(tool$coursesDeleteComponentResource);
    tool(tool$coursesCreateComponent);
    tool(tool$coursesGetComponent);
    tool(tool$coursesUpdateComponent);
    tool(tool$courseResourcesDelete);
    tool(tool$resourcesGetAll);
    tool(tool$resourcesCreate);
    tool(tool$resourcesGet);
    tool(tool$resourcesUpdate);
    tool(tool$resourcesDelete);
    tool(tool$classResourcesDelete);
    tool(tool$usersGetResources);
    tool(tool$usersAssignResource);
    tool(tool$usersGetAll);
    tool(tool$usersCreate);
    tool(tool$usersGet);
    tool(tool$usersUpdate);
    tool(tool$usersDelete);
    tool(tool$usersGetClasses);
    tool(tool$userResourcesRemove);
    tool(tool$termsList);
    tool(tool$termsGet);
    tool(tool$termsGetClasses);
    tool(tool$termsGetGradingPeriods);
    tool(tool$classTeachersGetAll);
    tool(tool$teachersGetAll);
    tool(tool$teachersGet);
    tool(tool$teachersGetClasses);
    tool(tool$studentsGetForClass);
    tool(tool$studentsGetAll);
    tool(tool$studentsGet);
    tool(tool$organizationsGetAll);
    tool(tool$organizationsCreate);
    tool(tool$organizationsGet);
    tool(tool$organizationsUpdate);
    tool(tool$organizationsDelete);
    tool(tool$gradingPeriodsGetAll);
    tool(tool$gradingPeriodsCreate);
    tool(tool$gradingPeriodsGet);
    tool(tool$gradingPeriodsUpdate);
    tool(tool$gradingPeriodsDelete);
    tool(tool$gradingPeriodsCreateForTerm);
    tool(tool$enrollmentsGetAll);
    tool(tool$enrollmentsCreate);
    tool(tool$enrollmentsGet);
    tool(tool$enrollmentsUpdate);
    tool(tool$enrollmentsDelete);
    tool(tool$enrollmentsGetForClass);
    tool(tool$demographicsGetAll);
    tool(tool$demographicsCreate);
    tool(tool$demographicsGet);
    tool(tool$demographicsUpdate);
    tool(tool$demographicsDelete);
    tool(tool$courseClassesGetAll);
    tool(tool$componentResourcesGetAll);
    tool(tool$courseComponentsGetAll);
    tool(tool$courseComponentsDelete);
    tool(tool$academicSessionsGetAll);
    tool(tool$academicSessionsCreate);
    tool(tool$academicSessionsGet);
    tool(tool$academicSessionsUpdate);
    tool(tool$academicSessionsDelete);
    tool(tool$schoolsLineItemsCreate);
    tool(tool$schoolsCoursesGetAll);
    tool(tool$classesResultsGetForLineItem);
    tool(tool$classesResultsGet);
    tool(tool$resourcesClassesAssign);
    tool(tool$studentsClassesGet);
    return server;
}
//# sourceMappingURL=server.js.map