TutorPing

Find and book independent tutors, or find students asking for a tutor in your subject.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
81%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,546Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (1.21% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "tutorping": {
      "url": "https://tutorping.ai/mcp"
    }
  }
}

Remote endpoints

https://tutorping.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_tutors(subject, location, level, maxHourlyRate)

Find independent tutors on TutorPing by subject, student level, and location. Returns their subject, level, location, rate, reviews, page link, and whether they can be booked directly. Use for students or parents looking for a tutor (SAT/ACT, math, science, languages, music, and more). If no listed tutor fits, use request_tutor and TutorPing will find one.

Input Schema

{
  "type": "object",
  "properties": {
    "subject": {
      "description": "e.g. \"SAT\", \"chemistry\", \"piano\"",
      "type": "string",
      "maxLength": 80
    },
    "location": {
      "description": "City or area, e.g. \"NYC\". Omit for online tutors anywhere.",
      "type": "string",
      "maxLength": 80
    },
    "level": {
      "description": "e.g. \"high school\", \"college\"",
      "type": "string",
      "maxLength": 40
    },
    "maxHourlyRate": {
      "description": "USD per hour",
      "type": "number",
      "exclusiveMinimum": 0
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡request_tutor(subject, level, location, online, budgetPerHour, ...)

Submit a request for TutorPing to match a student with a tutor, when search_tutors finds no fit or the user prefers to be matched. TutorPing replies by email within 1 business day with tutor options. Collect what the student needs, then confirm the details AND get the user's explicit agreement that TutorPing may share the request and contact details with matching tutors before calling. Ask only for a first name, never a child's full name.

Input Schema

{
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "description": "e.g. \"SAT math\", \"AP Chemistry\", \"piano\""
    },
    "level": {
      "description": "e.g. \"11th grade\", \"college\", \"adult beginner\"",
      "type": "string",
      "maxLength": 60
    },
    "location": {
      "description": "City or area for in-person; omit if online only",
      "type": "string",
      "maxLength": 120
    },
    "online": {
      "description": "true if online sessions are fine",
      "type": "boolean"
    },
    "budgetPerHour": {
      "description": "USD per hour",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "schedule": {
      "description": "e.g. \"weekday evenings, test on Dec 6\"",
      "type": "string",
      "maxLength": 200
    },
    "studentFirstName": {
      "type": "string",
      "maxLength": 60
    },
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Where TutorPing should send tutor options"
    },
    "phone": {
      "type": "string",
      "maxLength": 40
    },
    "notes": {
      "description": "Goals, current scores, anything a tutor should know",
      "type": "string",
      "maxLength": 1000
    },
    "consent": {
      "type": "boolean",
      "const": true,
      "description": "The user agreed TutorPing may share this request and contact details with matching tutors"
    }
  },
  "required": [
    "subject",
    "email",
    "consent"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_tutor(slug)

Full public profile for one TutorPing tutor (by slug from search_tutors).

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "maxLength": 80
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_tutor_availability(slug, days)

Open session times for a tutor, in the tutor's timezone. Use before request_booking.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "maxLength": 80
    },
    "days": {
      "default": 14,
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢request_booking(slug, date, time, studentName, studentEmail, ...)

Book a student into one of a tutor's open slots (from get_tutor_availability). The tutor and the student both get a confirmation email. Confirm the time, name, and email with the user before calling.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "maxLength": 80
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD"
    },
    "time": {
      "type": "string",
      "pattern": "^\\d{2}:\\d{2}$",
      "description": "HH:MM, 24h, tutor's timezone — must match an open slot"
    },
    "studentName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "studentEmail": {
      "type": "string",
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "subject": {
      "type": "string",
      "maxLength": 100
    },
    "type": {
      "default": "session",
      "description": "\"trial\" only if the tutor offers a free trial",
      "type": "string",
      "enum": [
        "session",
        "trial"
      ]
    }
  },
  "required": [
    "slug",
    "date",
    "time",
    "studentName",
    "studentEmail"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢tutoring_demand(subject, days)

How many people online recently asked for a tutor in a subject (from Reddit and other communities TutorPing monitors), in total. Useful for tutors deciding whether there is demand for their subject. The requests themselves are only shared with TutorPing tutors.

Input Schema

{
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "minLength": 2,
      "maxLength": 60,
      "description": "e.g. \"SAT\", \"organic chemistry\", \"piano\""
    },
    "days": {
      "default": 7,
      "type": "integer",
      "minimum": 1,
      "maximum": 14
    }
  },
  "required": [
    "subject"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ask_tutorping(question, askedFor)

Ask anything about TutorPing, finding a tutor, or finding tutoring students that the other tools don't cover, in plain words. Returns which TutorPing tool or page fits, plus contact details. Do not include personal information.

Input Schema

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "minLength": 2,
      "maxLength": 500
    },
    "askedFor": {
      "description": "Who the question is for",
      "type": "string",
      "enum": [
        "student-or-parent",
        "tutor",
        "tutoring-business",
        "other"
      ]
    }
  },
  "required": [
    "question"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢how_to_get_leads

Explains how a tutor gets student leads from TutorPing and connects their own AI assistant.

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools