tapestry-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tapestry-mcplist my children's recent observations"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tapestry-mcp
Unofficial, read-only MCP server for the Tapestry learning journal (tapestryjournal.com, Android com.fsf.tapestry), for parents and carers.
Tapestry has no public API. This logs in with your own email and password and calls the same internal /api/4/… endpoints the web app uses (found via tapestry-scraper). It may break if Tapestry changes their web app. Accounts using 2FA or SSO-only login aren't supported.
Tools
Tool | What it does |
| Children on the account (ids for filtering) |
| Newest-first summaries; |
| Full notes (HTML stripped), tags/EYFS links, comments, media URLs; |
| Keyword search over titles, notes and tags |
| Saves an observation's photos/videos to |
Related MCP server: librus-mcp
Add to Frona
Settings → MCP → Custom → Local package
Field | Value |
Runtime |
|
Package identifier |
|
Transport |
|
Env |
|
Other MCP clients
{
"mcpServers": {
"tapestry": {
"command": "npx",
"args": ["-y", "github:Mpercy-Git/tapestry-mcp"],
"env": { "TAPESTRY_EMAIL": "you@example.com", "TAPESTRY_PASSWORD": "…" }
}
}
}Troubleshooting login
Use the variable names exactly:
TAPESTRY_EMAIL(orTAPESTRY_USERNAME) andTAPESTRY_PASSWORD. The value is the email address you sign in to tapestryjournal.com with — check it works in a browser first.Accounts linked to more than one school land on a "select school" page after login; the server picks the first school, or the one named in
TAPESTRY_SCHOOL(part of its name, or the slug from/s/<slug>/in the web address). The server log lists the schools it found.Accounts that sign in with Google/Microsoft only, or that need a 2FA code, can't be used.
Add
TAPESTRY_DEBUG=1to the env to log each login step (status codes, URLs, form field names — never the password) to the server's stderr.The error message says which step failed: unreachable host, HTTP 419/429, a 2FA prompt, or back on the login page.
Notes
Session cookies are only sent to
tapestryjournal.com; media on other hosts (CDN) is fetched without them.If a field comes back empty, call
get_observationwithinclude_raw: trueand adjust the mapping insrc/server.js.
Dev
npm install && npm testRequires Node 20+. No build step — plain ES modules, so installing straight from GitHub works.
Releasing
Bump version in package.json and in server.json (top-level and under packages), then merge to main. The Release workflow runs the tests, tags v<version> and publishes a GitHub release with the npm pack tarball attached. Pushes that don't change the version are a no-op; it can also be run by hand from the Actions tab.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read vehicle records, service history and reminder settings. OAuth access via supported clients.
Read ChurchSuite contacts, children, small groups, rotas, events and attendance; add contact notes.
Read-only access to your dotstell notes, bookmarks, tasks, people and meetings.
Permissioned access to Outlook, OneDrive and Teams via the user's own Microsoft account
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables guardians to securely query read-only Vklass data such as children, news, calendar entries, assignments, grades, meals, and notifications through MCP, with per-user BankID and OAuth 2.1 authentication.MIT
- FlicenseAqualityCmaintenanceEnables read-only access to a Librus Portal account, letting users list linked Synergia accounts and retrieve grades, attendance, timetable, homework, notices, and school information.3-
- AlicenseAqualityAmaintenanceEnables read-only access to SimplePractice Client Portal data — appointments, billing, documents, and announcements — via the portal's JSON:API, using passwordless portal sign-in.15242 npmMIT
- AlicenseAqualityAmaintenanceEnables parents to view and manage their child's school arrival and dismissal details, including calendar, pickup changes, drivers, and school information, using the SchoolPass REST API.11277 npmMIT