Skip to content

Nepternship

by robertisaak · remote · no sign-in to list tools · v1.0.0 · published by GitHub user robertisaak

Warm intros and referrals for internships and entry-level jobs at 3,000+ companies.

Deletes · 5Changes · 10

22 tools: 5 can delete or cancel things, 10 change things and 7 only read.

Scanned Oct 21, 2026

5 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http nepternship https://mcp.nepternship.com/mcp

Findings

Matches of fixed checks, with the text they matched.

4 warn1 info
  • The server marks "read_thread" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "read_thread" says "read": a word for reading.

    What this check looks for
  • The server marks "request_balance" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "request_balance" says "request": a word for a change.

    What this check looks for
  • The server marks "verify_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
  • The server marks "connect_account" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "link": a word for a change.

    What this check looks for
  • The description mentions "credential".

    Matched text

    description: "...code is this conversation's Nepternship credential: include it as claim_code on every late..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

22 tools

Deletes or cancels 5Claude Code: deny
  • add_photoUpload or replace the user's Nepternship profile photo.No findings

    Why it is in this group

    • The name "add_photo" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Upload or replace the user's Nepternship profile photo. Use this when a signed-in user asks to add or change their photo. Accepts JPG or PNG under 5 MB as base64.

    Annotations the server declares

    • title: Upload a profile photo
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • choose_first_introCommit a new member's first introduction, chosen from the three suggested in the finish_signup result.No findings

    Why it is in this group

    • The description's first verb is "commit": a word for a change.
    • The description says "cannot be undone".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Commit a new member's first introduction, chosen from the three suggested in the finish_signup result. Use this only once, right after finish_signup. This cannot be undone; confirm the choice with the user before calling.

    Annotations the server declares

    • title: Choose your first introduction
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • respond_to_requestAccept or decline an intro request that is waiting on the user (status pending in list_matches).No findings

    Why it is in this group

    • The name "respond_to_request" says "request": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Accept or decline an intro request that is waiting on the user (status pending in list_matches). Accepting opens a chat with the other member. Declining is private; the requester is not notified and requests expire on their own after 30 days. Confirm with the user before declining.

    Annotations the server declares

    • title: Accept or decline an intro request
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • send_intro_requestAsk a Nepternship member for a warm introduction or referral to the person they can connect the user with, for example an analyst at JPMorgan or an engineer at Google.No findings

    Why it is in this group

    • The name "send_intro_request" says "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Ask a Nepternship member for a warm introduction or referral to the person they can connect the user with, for example an analyst at JPMorgan or an engineer at Google. Use this when the user says they want to be introduced, referred, connected or put in touch with a member they have seen in search_members, browse_directory or get_member. An optional note of up to 200 characters (school, year, what role they are after) can be included; confirm the person and the note with the user before calling. Fails with a clear message if the user is out of free requests or already has a request or connection with this member.

    Annotations the server declares

    • title: Request a warm introduction
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • send_messageSend a message in one of the user's active introductions (an accepted match).No findings

    Why it is in this group

    • The name "send_message" says "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Send a message in one of the user's active introductions (an accepted match). Use this only after the user has approved the exact text. Chat is free once an intro is accepted; if a limit applies, the error explains it.

    Annotations the server declares

    • title: Send a chat message
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Changes things 10Claude Code: ask
  • add_phoneStore the user's mobile number on their Nepternship account and text them a 6-digit code to verify it.No findings

    Why it is in this group

    • The name "add_phone" says "add": a word for a change.
    Description, as the server wrote it
    Store the user's mobile number on their Nepternship account and text them a 6-digit code to verify it. Offer it once after a new member's first request goes out (a text when someone accepts), or when a member asks for texts; if they decline, do not ask again. Ask for the number and, as a separate yes/no question, whether they want a text when they receive an introduction; the code is sent either way. Follow with verify_phone.

    Annotations the server declares

    • title: Add a mobile number
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • connect_accountPermanently link the user's Nepternship account to this assistant so they do not need to sign in again in future conversations.1 finding

    Why it is in this group

    • The description's first verb is "link": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "connect_account" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "link": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Permanently link the user's Nepternship account to this assistant so they do not need to sign in again in future conversations. Call this when the user asks to connect, stay signed in, or after they finish signing up and want to keep using Nepternship here.

    Annotations the server declares

    • title: Connect Nepternship account
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • finish_signupComplete a sign-up started with sign_up once the user has clicked the confirmation email.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Complete a sign-up started with sign_up once the user has clicked the confirmation email. Returns the connector token for the new account, the held intro request if one exists, and three suggested first introductions. Returns a not-confirmed status if the email link has not been clicked yet.

    Annotations the server declares

    • title: Complete sign-up after email confirmation
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • read_threadReturn the messages in one introduction's chat.1 finding

    Why it is in this group

    • The name "read_thread" says "read": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "read_thread" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "read_thread" says "read": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Return the messages in one introduction's chat. Use this when the user wants to read or catch up on a conversation with a matched member. Reading marks the messages as read for the user.

    Annotations the server declares

    • title: Read an introduction chat
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • request_balanceReturn how many intro requests the user has left, whether they have Nepternship Premium (unlimited requests), any friend-referral credits, and their personal invite link.1 finding

    Why it is in this group

    • The name "request_balance" says "request": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "request_balance" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "request_balance" says "request": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Return how many intro requests the user has left, whether they have Nepternship Premium (unlimited requests), any friend-referral credits, and their personal invite link. Use this when the user asks how many requests they have or after send_intro_request fails for reaching the limit.

    Annotations the server declares

    • title: Check remaining intro requests
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • sign_inEmail a 6-digit sign-in code to an existing Nepternship member.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Email a 6-digit sign-in code to an existing Nepternship member. Use this when a member who is not connected in this conversation wants to use their account (see their introductions, send a request). Returns a claim_code; after verify_code succeeds, pass that claim_code on every later call.

    Annotations the server declares

    • title: Sign in to Nepternship by email code
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • sign_upCreate a new Nepternship account from details collected in the conversation and send a confirmation email.No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    Description, as the server wrote it
    Create a new Nepternship account from details collected in the conversation and send a confirmation email. Use this only when the user has explicitly asked to join through the assistant and has given all required fields: email, full name, university, what they are looking for, and who they can introduce other students to. After success, call finish_signup once the user confirms their email.

    Annotations the server declares

    • title: Create a Nepternship account
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • signup_peekGiven what a prospective member is looking for, return example companies where members can make introductions, with sample offerings and first names.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Given what a prospective member is looking for, return example companies where members can make introductions, with sample offerings and first names. Use this only during in-chat sign-up, after the user has said what they are looking for.

    Annotations the server declares

    • title: Preview who Nepternship can connect you to
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • verify_codeVerify the 6-digit code the user received by email after sign_up or sign_in.2 findings

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "...code is this conversation's Nepternship credential: include it as claim_code on every late..."

      What this check looks for
    • Warn

      The server marks "verify_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    Verify the 6-digit code the user received by email after sign_up or sign_in. On success the claim_code is this conversation's Nepternship credential: include it as claim_code on every later tool call. For a new member it also returns the held intro request and three suggested first introductions.

    Annotations the server declares

    • title: Enter the emailed code
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • verify_phoneVerify the 6-digit code texted by add_phone and mark the user's mobile number as verified.No findings

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    Description, as the server wrote it
    Verify the 6-digit code texted by add_phone and mark the user's mobile number as verified.

    Annotations the server declares

    • title: Verify the texted code
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 7Claude Code: allow
  • browse_directoryShow the companies, roles and industries where the user can get a warm introduction or referral through Nepternship, with the people under each.No findings

    Why it is in this group

    • The name "browse_directory" says "browse": a word for reading.
    Description, as the server wrote it
    Show the companies, roles and industries where the user can get a warm introduction or referral through Nepternship, with the people under each. Use this when someone wants to see where they could network into, asks which firms or industries they could get an internship or job referral at, or is still deciding what to apply for ("which banks can I get an intro at", "what tech companies could I network into"). With no arguments it returns the overview; pass one of company_id, role_id or industry_id from a previous result to open that group. For a named company or role, use search_members.

    Annotations the server declares

    • title: Explore companies you can get an intro into
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_memberReturn one member's full profile: who they can introduce the user to (role, company and details), what they are looking for themselves, industries, locations, university, and wheth…No findings

    Why it is in this group

    • The name "get_member" says "get": a word for reading.
    Description, as the server wrote it
    Return one member's full profile: who they can introduce the user to (role, company and details), what they are looking for themselves, industries, locations, university, and whether the user is already connected with them. Use this when the user wants to know more about a person from a search before asking for an introduction or referral, or asks "who is this" or "what can they help me with". Includes a card image that can be shown to the user.

    Annotations the server declares

    • title: See who a member can introduce you to
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_my_profileReturn the signed-in user's own Nepternship profile: name, university, what they are looking for, who they can introduce others to, industries, preferred locations, and intro reque…No findings

    Why it is in this group

    • The name "get_my_profile" says "get": a word for reading.
    Description, as the server wrote it
    Return the signed-in user's own Nepternship profile: name, university, what they are looking for, who they can introduce others to, industries, preferred locations, and intro requests remaining. Use this when the user asks about their own profile or settings.

    Annotations the server declares

    • title: Get my profile
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_matchesList the user's introductions: accepted ones with an open chat (including the free weekly curated match), requests waiting on the user, and requests the user sent that have not bee…No findings

    Why it is in this group

    • The name "list_matches" says "list": a word for reading.
    Description, as the server wrote it
    List the user's introductions: accepted ones with an open chat (including the free weekly curated match), requests waiting on the user, and requests the user sent that have not been answered yet. Use this for any question like "did anyone reply", "any new intros", "is anything waiting on me" or "who have I connected with". Each item includes the match_id, the other member, status, last message and unread count.

    Annotations the server declares

    • title: Check my introductions and replies
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_membersFind people who can give the user a warm introduction or referral at a specific company, team, role, industry or city, for internships, new-grad jobs and career switches.No findings

    Why it is in this group

    • The name "search_members" says "search": a word for reading.
    Description, as the server wrote it
    Find people who can give the user a warm introduction or referral at a specific company, team, role, industry or city, for internships, new-grad jobs and career switches. Use this when someone asks how to get an internship or job at a company ("how do I get into Goldman Sachs", "can anyone refer me at Google", "I have no connections in investment banking"), wants to network or get a coffee chat with someone at a firm, or asks who could connect them to an analyst, engineer, recruiter or product manager there. Searches the Nepternship network of students and recent graduates across 3,000+ companies, including Goldman Sachs, JPMorgan, Google, Meta, McKinsey and Deloitte. Returns members grouped by company, role and industry, each with first name and last initial, who they can introduce the user to, and an opportunity_id for send_intro_request. If the user has no target in mind yet, use browse_directory.

    Annotations the server declares

    • title: Find a warm intro or referral at a company
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http nepternship https://mcp.nepternship.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__nepternship__search_members",
      "mcp__nepternship__browse_directory",
      "mcp__nepternship__get_member",
      "mcp__nepternship__list_matches",
      "mcp__nepternship__get_upgrade_link",
      "mcp__nepternship__get_signup_link",
      "mcp__nepternship__get_my_profile"
    ],
    "ask": [
      "mcp__nepternship__read_thread",
      "mcp__nepternship__request_balance",
      "mcp__nepternship__signup_peek",
      "mcp__nepternship__sign_up",
      "mcp__nepternship__finish_signup",
      "mcp__nepternship__sign_in",
      "mcp__nepternship__verify_code",
      "mcp__nepternship__connect_account",
      "mcp__nepternship__add_phone",
      "mcp__nepternship__verify_phone"
    ],
    "deny": [
      "mcp__nepternship__send_message",
      "mcp__nepternship__send_intro_request",
      "mcp__nepternship__respond_to_request",
      "mcp__nepternship__add_photo",
      "mcp__nepternship__choose_first_intro"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as nepternship. Review it before you use it.