{"id":51061181,"url":"https://github.com/jtpio/ajlab","last_synced_at":"2026-06-23T02:02:03.116Z","repository":{"id":354536458,"uuid":"1222888572","full_name":"jtpio/ajlab","owner":"jtpio","description":"Agent ready JupyterLab","archived":false,"fork":false,"pushed_at":"2026-06-04T13:43:42.000Z","size":580,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-04T15:16:37.444Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jtpio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-27T20:05:35.000Z","updated_at":"2026-06-04T13:44:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jtpio/ajlab","commit_stats":null,"previous_names":["jtpio/ajlab"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/jtpio/ajlab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jtpio%2Fajlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jtpio%2Fajlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jtpio%2Fajlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jtpio%2Fajlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jtpio","download_url":"https://codeload.github.com/jtpio/ajlab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jtpio%2Fajlab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34672250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-23T02:02:02.462Z","updated_at":"2026-06-23T02:02:03.111Z","avatar_url":"https://github.com/jtpio.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ajlab\n\nAgent-ready JupyterLab.\n\n![](./screenshot.png)\n\n`ajlab` is a small meta-package that installs JupyterLab plus a few extensions\nuseful for agent workflows, and ships some defaults under `etc/jupyter/labconfig`.\n\n## What's included\n\nMinimum versions (see [`pyproject.toml`](./pyproject.toml)):\n\n- `jupyterlab \u003e=4.6.0b1`\n- `jupyter-docprovider \u003e=3.0.0a0` and `jupyter-server-ydoc \u003e=3.0.0a0`\n- `jupyter-server-mcp \u003e=0.3.0a0`\n- `jupyterlab-commands-toolkit`\n\n## Default settings\n\n- Hidden files shown in the file browser.\n\n## Install\n\n```bash\npip install ajlab\n```\n\n## Run\n\nOnce installed, start JupyterLab with:\n\n```bash\njupyter lab\n```\n\n## Configure agents\n\nAgent connectivity is provided by [`jupyter-server-mcp`][mcp], which runs inside\nJupyterLab and exposes an MCP endpoint (default port `3001`) that any MCP client\ncan connect to.\n\nThe recommended way to connect a client is the stdio proxy, which auto-discovers\nthe running Jupyter MCP server and bridges stdio to its HTTP endpoint. It keeps\nworking unchanged when several Jupyter servers run side by side or when the port\nis assigned dynamically. To wire it up to Claude Code:\n\n```bash\nclaude mcp add jupyter-mcp -- uvx --prerelease allow --from jupyter-server-mcp jupyter-server-mcp-proxy\n```\n\n\u003e `jupyter-server-mcp` is currently a pre-release. `uvx` skips pre-releases by\n\u003e default, so pass `--prerelease allow` or it silently installs the older stable\n\u003e release and the proxy/server versions won't match.\n\nAlternatively, for a single server on a fixed port, connect directly over HTTP:\n\n```bash\nclaude mcp add --transport http jupyter-mcp http://localhost:3001/mcp\n```\n\nSee the [`jupyter-server-mcp` README][mcp] for tool registration via\n`jupyter_config.py` and snippets for other MCP clients.\n\n[mcp]: https://github.com/jupyter-ai-contrib/jupyter-server-mcp\n\n## License\n\nBSD-3-Clause\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjtpio%2Fajlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjtpio%2Fajlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjtpio%2Fajlab/lists"}